对UITableViewCell contentView的AutoLayout约束不受尊重

ada*_*amF 3 uitableview uilabel ios autolayout

我正在尝试创建动态调整表格视图单元格.我通过使用这个非常详细和有用的答案完成了调整大小.

但是,标签的最大宽度未正确计算heightForRowAtIndexPath.

我的单元格当前只有一个标签contentView,约束设置为将所有标签边缘固定到contentView边缘.这就是我在IB中所拥有的 在此输入图像描述

小区大小正与一个屏幕外细胞计算出heightForRowAtIndexPath使用

CGSize size = [cell.contentView systemLayoutSizeFittingSize:UILayoutFittingCompressedSize];
Run Code Online (Sandbox Code Playgroud)

在这个过程中,似乎它尊重约束,并且label.preferredMaxLayoutWidth属性被设置为320,但是当标签实际被渲染时,仍然有填充.

在此输入图像描述

Ban*_*ngs 13

填充是布局边距.你必须要小心Constrain to margins选择.

Constrain to margins 已启用: 在此输入图像描述

Constrain to margins 被禁用: 在此输入图像描述

如何禁用它?

  1. 您可以双击约束之一并取消选中该Relative to margin选项:

在此输入图像描述
在此输入图像描述

  1. 取消选中Constrain to margins创建标签约束的时间:

在此输入图像描述

相关链接:
Xcode 6中的Storyboard中的"约束到边距"是什么