Luk*_*uke 18 objective-c ios autolayout nslayoutconstraint
我开始实现AutoLayout,我正在尝试拼凑我如何UITableViewCell正确连接我的一个自定义类.它通常有两个UILabel对象,一个在另一个上面,很像标准的字幕类.我希望这两个标签在单元格中居中,无论单元格的高度如何,两者之间都有给定的填充.
我假设我可以通过添加两个标签的高度,添加填充,然后从单元格的高度减去它,然后除以2来做到这一点.但是,我在语义上很好奇这是否正确,因为我将它们限制在单元格的顶部和底部,而不是相互之间.我在这里错过了一招吗?
其次,有时候第三个标签也堆叠在一起,所以三个标签相互叠加.在那种情况下,我需要两组填充等,但问题变得更加相关:我不应该将它们相互约束,而不是限制在单元格的顶部和底部吗?
所以,问题更多的是语义问题:如果我想在父视图中垂直约束多个元素,是否有比我上面建议的方法更聪明的方法呢?
(我目前正在代码中完全实现AutoLayout(使用Masonry),因为这个单元格没有XIB而且不在故事板中).
jrt*_*ton 26
正确的方法是使用容器视图,该视图从其子视图中获取其高度.然后将容器视图固定到单元格的中心 - 您不会有任何约束将容器链接到单元格的顶部和底部边缘.
在容器内,垂直约束将使|[label1]-[label2]|容器成为两个标签的高度加上空间,容器视图的中心将位于两个标签之间.
如果你添加了三个标签,它将是,|[label1]-[label2]-[label3]|并且容器的中心将位于中间标签的中心.
在每种情况下,容器的中心都位于单元的中心,您不需要计算任何东西.
| 归档时间: |
|
| 查看次数: |
12362 次 |
| 最近记录: |