对UITableViewCell contentView的AutoLayout约束不受尊重
我正在尝试创建动态调整表格视图单元格。 我通过使用这个非常详细和有用的答案完成了resize。
但是,在heightForRowAtIndexPath
未正确计算标签的最大宽度。
我的单元格目前在其contentView
只有一个标签,约束设置为将所有标签边缘固定到contentView
边缘。 这就是我在IB中所拥有的
使用heightForRowAtIndexPath
的offscreen单元格计算单元格大小
CGSize size = [cell.contentView systemLayoutSizeFittingSize:UILayoutFittingCompressedSize];
在此过程中,似乎它正在label.preferredMaxLayoutWidth
约束,并且label.preferredMaxLayoutWidth
属性被设置为320,但是当标签实际被渲染时,仍然存在填充。
填充是布局边距。 你必须要注意Constrain to margins
选项。
Constrain to margins
已启用:
Constrain to margins
是禁用的:
如何禁用它?
- 您可以双击其中一个约束并取消选中
Relative to margin
选项:
- 在创建标签约束时取消选中
Constrain to margins
:
相关链接:
什么是Xcode 6中的Storyboard中的“约束到边距”