我在哪里可以访问 IB 自动生成的布局约束?

Posted

技术标签:

【中文标题】我在哪里可以访问 IB 自动生成的布局约束?【英文标题】:Where exactly can I access IB auto generated layout constraints? 【发布时间】:2013-10-06 23:17:33 【问题描述】:

我在UITableViewCell 中有一个UILabel,似乎有NSIBPrototypingLayoutConstraints 由IB 自动生成。

看起来我实际上无法通过调用myLabel.constraintsmyCell.constraints 来访问约束。

它是存储在其他地方还是我无法通过代码访问它?

【问题讨论】:

它们可能在单元格的contentView 属性中吗? 【参考方案1】:

如果是自定义表格单元格(即您将 UILabel 从对象库拖到表格单元格中),则在 IB 中选择 UILabel。在 IB 画布的右下角,单击“解决自动布局问题”按钮——它看起来像来自《星球大战》的 Tie-Fighter。从弹出菜单中,选择“添加缺少的约束”。这应该显示自动生成的约束。您可以在 IB 中重新配置它们并为它们创建出口。

如果您使用的 UILabel 带有这些预配置的表格单元之一(例如,基本样式),那么您可能无法重新配置标签的约束。对于预配置单元格中的 UILabel,“添加缺少的约束”项被禁用。

如果您想在预配置的表格单元格中修改 UILabel 的约束,那么您可以考虑改用自定义样式的表格单元格。

【讨论】:

以上是关于我在哪里可以访问 IB 自动生成的布局约束?的主要内容,如果未能解决你的问题,请参考以下文章

自动布局、约束和旋转

Interface Builder 对 UIScrollView 的正确约束是啥?来自 IB 的纯自动布局

使用 UIAttachmentBehavior 和自动布局约束拖动 UIView

使用自动布局,IB和字体大小时,表头视图高度是错误的

为啥自动布局约束不起作用?

忽略 IB 中的模棱两可的布局警告