我有查看电子邮件这样的UI的Android应用程序:
我试图端口这对iOS和需要与iOS 5.0及以上(所以不能使用的iOS 6.0自动布局)工作。 希望你能告诉布局应该如何调整/基于示例流动。
什么是处理这种布局的最佳方法是什么? 从和重新线需要是可变的高度,如图(实际上是:行以及)。 消息体需要是当然的可变高度。
我只是尝试至今一直试图用的UITableViewController静态细胞。 我能够获得可变高度的方式,通过使用sizeWithFont内heightForRowAtIndexPath,以返回所需的高度的每一行。 使用我有一个时间试图得到我想要的风格到底该方法(圆角和背景仅顶部)。
那么,有没有更好的办法? 也许一些使用集合视图或容器视图? 在其他一些屏幕,我需要端口我有类似的问题,但他们有(白色部分圆形的蓝色部分内内圆的蓝色部分)嵌套更多层次。 不然我就关不使用IB和只是基本的标签要素和通用视图建设代码整个UI更好?
我能想到的最简单的方法是手动计算为内侧的标签帧viewDidLayoutSubviews
。 下面是一些伪代码:
在创建:
- 在IB,把所有标签为蓝色区域的子视图。 检查容器枝顶端,左,右的自动尺寸面具,以及具有拉伸宽度。 我们会解决的高度和在代码中的子视图帧。 消息主体可以是标签或一个TextView作为单独的视图。
- 在
viewDidLoad
,设置含有视图的层cornerRadius,BORDERCOLOR等适当。
在viewDidLayoutSubviews
:
- 时间标签:简单。 只需设置宽度与上海华宽度减去一些填充,设置高度与
sizeWithFont:
- 对于
To:
, From:
,和Re:
; 打电话sizeToFit
。 获取最大宽度和坚持了这一点。 -
To:
标签:设置x为0,y以时间标签的底部。 - 收件人的姓名标签:设置X你从(2)得到了宽度和y,以同(3)。 设定宽度(容器宽度- (2))和高度用
sizeWithFont:
- 做从(3)到(4)对同一步骤
From:
和Re:
行。 - 将蓝色视图高度的主题标签的框架底部。
- 填写与身体的TextView /标签框架的其余部分。
你必须添加你自己的垫衬,因为sizeToFit
和sizeWithFont:
不会为你做的。 此外,人体UITextView
可以滚动它自己的,但如果你期待在较长的主题标题,那么你应该换整个事情在其他UIScrollView
(或IB刚刚设置的主视图的类UIScrollView
)