iPhone上的流体UI布局(Fluid UI layout on iPhone)

2019-11-01 03:23发布

我有查看电子邮件这样的UI的Android应用程序:

我试图端口这对iOS和需要与iOS 5.0及以上(所以不能使用的iOS 6.0自动布局)工作。 希望你能告诉布局应该如何调整/基于示例流动。

什么是处理这种布局的最佳方法是什么? 从和重新线需要是可变的高度,如图(实际上是:行以及)。 消息体需要是当然的可变高度。

我只是尝试至今一直试图用的UITableViewController静态细胞。 我能够获得可变高度的方式,通过使用sizeWithFont内heightForRowAtIndexPath,以返回所需的高度的每一行。 使用我有一个时间试图得到我想要的风格到底该方法(圆角和背景仅顶部)。

那么,有没有更好的办法? 也许一些使用集合视图或容器视图? 在其他一些屏幕,我需要端口我有类似的问题,但他们有(白色部分圆形的蓝色部分内内圆的蓝色部分)嵌套更多层次。 不然我就关不使用IB和只是基本的标签要素和通用视图建设代码整个UI更好?

Answer 1:

我能想到的最简单的方法是手动计算为内侧的标签帧viewDidLayoutSubviews 。 下面是一些伪代码:

在创建:

  1. 在IB,把所有标签为蓝色区域的子视图。 检查容器枝顶端,左,右的自动尺寸面具,以及具有拉伸宽度。 我们会解决的高度和在代码中的子视图帧。 消息主体可以是标签或一个TextView作为单独的视图。
  2. viewDidLoad ,设置含有视图的层cornerRadius,BORDERCOLOR等适当。

viewDidLayoutSubviews

  1. 时间标签:简单。 只需设置宽度与上海华宽度减去一些填充,设置高度与sizeWithFont:
  2. 对于To:From: ,和Re: ; 打电话sizeToFit 。 获取最大宽度和坚持了这一点。
  3. To:标签:设置x为0,y以时间标签的底部。
  4. 收件人的姓名标签:设置X你从(2)得到了宽度和y,以同(3)。 设定宽度(容器宽度- (2))和高度用sizeWithFont:
  5. 做从(3)到(4)对同一步骤From:Re:行。
  6. 将蓝色视图高度的主题标签的框架底部。
  7. 填写与身体的TextView /标签框架的其余部分。

你必须添加你自己的垫衬,因为sizeToFitsizeWithFont:不会为你做的。 此外,人体UITextView可以滚动它自己的,但如果你期待在较长的主题标题,那么你应该换整个事情在其他UIScrollView (或IB刚刚设置的主视图的类UIScrollView



文章来源: Fluid UI layout on iPhone