UITableViewCell内的自动布局 - 基于两个不同元素的可变大小的动态高度

时间:2014-11-21 00:46:39

标签: ios iphone ipad uitableview autolayout

在uitableviewcell的内部,我有一个图像视图和一个标签并排。我使用systemlayoutfittingsize +一个大小调整单元来通过ios7 / 8的autolayout驱动表格视图单元格高度。我也是以编程方式设置这些约束(请不要让故事板回答)。两种可能的情况......

场景1 :标签高度本质上小于图像高度

所需结果:单元格的大小会扩大,以便图像(显式设置为100宽度,75高度)在边界区域中垂直居中,标签的上边缘为与图像上边缘对齐。

enter image description here

场景2 :标签高度本质上大于图像高度

所需结果:单元格的大小会扩展,以便标签在单元格中垂直居中。图像的上边缘与标签的上边缘对齐。

enter image description here

1 个答案:

答案 0 :(得分:0)

所以这需要的约束似乎是

对于图像视图: 1.引脚宽度= 100 2.针高= 75 3.将前导空间固定到superview = 10 4.将顶部空间固定到superview = 10

对于标签: 1.将顶部空间固定到superview = 10 2.将底部空间固定到superview = 10 3.针宽= 200 4.引脚跟踪到superview = 10 5.引脚水平间距= 10(标签和图像视图之间)

然后在代码中我们要担心的是" heightForRow" UITableView委托方法。由于我们没有为标签设置静态高度,我们将其固定到superview / cell的顶部和底部,它将根据UITableView单元格的高度改变大小。我们必须计算" numberOfLines"对于标签文本的动态长度。有很多链接可以帮助您解决这个问题 - How to calculate UILabel height dynamically?