我有一个Android应用程序,其中包含用于查看电子邮件的用户界面:
我正在尝试将其移植到iOS并需要它与iOS 5.0及更高版本一起使用(因此无法在iOS 6.0中使用自动布局)。希望您可以根据示例了解布局应如何调整/流动。
处理此类布局的最佳方法是什么? From和Re线需要是可变高度,如图所示(实际上也是To:line)。消息体当然需要可变高度。
到目前为止,我唯一的尝试是尝试将UITableViewController与静态单元格一起使用。通过在heightForRowAtIndexPath中使用sizeWithFont,我可以通过这种方式获得变量高度,以返回每行所需的高度。使用这种方法,我有一段时间试图获得我想要的样式(圆角和背景仅用于顶部)。
那么还有更好的方法吗?也许是使用Collection View或Container View的东西?在其他一些屏幕我需要移植我有类似的问题,但他们有更多的嵌套级别(圆形蓝色部分内的白色部分内的圆形蓝色部分)。或者我最好不使用IB并在基本标签元素和通用视图的代码中构建整个UI?
答案 0 :(得分:2)
我能想到的最简单的方法是手动计算viewDidLayoutSubviews
内的标签帧。这是一些伪代码:
创作时:
viewDidLoad
中,根据需要设置包含视图的图层cornerRadius,borderColor等。在viewDidLayoutSubviews
:
sizeWithFont:
To:
,From:
和Re:
;致电sizeToFit
。获取最大宽度并坚持下去。To:
label:将x设置为0,将y设置为时间标签的底部。sizeWithFont:
将宽度设置为(容器宽度 - (2.))和高度。From:
和Re:
行执行(3.)到(4.)相同的步骤。您必须自行添加填充,因为sizeToFit
和sizeWithFont:
不会为您执行此操作。此外,正文UITextView
可以自己滚动,但是如果您期望长主题,那么您应该将整个事物包装在另一个UIScrollView
中(或者在IB中将主视图的类设置为{{ 1}})