使用自动布局时标签不会调整大小,情节提要中的约束

Posted

技术标签:

【中文标题】使用自动布局时标签不会调整大小,情节提要中的约束【英文标题】:Label does not resize when using autolayout, constraint in Storyboard 【发布时间】:2014-10-12 05:56:06 【问题描述】:

在纵向模式下查看表格时,表格视图自定义单元格中的我的标签不会调整大小

使用 Xcode 6,beta 5 - Swift 语言。运行模拟器 iPhone 5s

在这个新的 Xcode 中,ViewController 和 tableview 的默认大小是 600x600。所以添加约束变得非常非常重要。

这里是完整项目的链接:https://www.dropbox.com/s/mwjubsmcc8kwv1n/test%202.zip

这是我在 tableviewcell 中的标签上应用的约束。一切都设置为优先级 = 1000,但我也尝试了各种优先级组合。

更大的约束图像

我已经尝试了各种内容拥抱优先级和内容抗压缩优先级。没有任何帮助。

现在,由于左右约束指定每边将有 100 个像素,因此标签在纵向模式下的宽度应该已调整为大小:

320-100-100 = 120 像素

这符合设备上设置的宽度限制

唉!!!我一直得到的是这个。

风景看起来不错。

这是我的标签设置(以防万一)

注意“行数 = 0” 我已将其更改为 Lines=1 也无济于事。

【问题讨论】:

【参考方案1】:

我可以看到您的 contentView 没有任何自动布局约束,并且可能没有正确调整大小。您需要将 Top、Bottom、Trailing 和 Leading 空间约束添加到 contentView 中,常量 = 0。

【讨论】:

在我的情节提要中,Contentview 部分不允许我指定约束。另外,我无法右键单击并拖动内容视图。可以发个截图吗。 好的,所以我检查了一下,似乎所有这些边距优先级实际上都应用于内容视图。我还尝试向标签添加宽度约束:(小于或等于 100)——仍然没有变化。如何让 contentview 每次都重新计算约束? 好的,只需从标签中删除所有约束并在容器中添加水平中心和容器中的垂直中心。尝试在 willDisplayCell 委托中打印单元格层次结构。你一定会找到答案的。顺便说一句,您的测试项目故事板已损坏,因此我无法检查代码的实际问题。 我使用的是 Xcode 6,Beta 5 - 这可能是您机器上的问题。 尝试删除所有约束,然后简单地应用中心水平和中心垂直。没有变化。

以上是关于使用自动布局时标签不会调整大小,情节提要中的约束的主要内容,如果未能解决你的问题,请参考以下文章

当我使用自动布局移动视图时,为啥 XCode 5 没有在情节提要中添加约束

如何使用自动布局调整情节提要的图像大小?

如何仅使用一个情节提要为所有 iPhone 设备设计自动布局约束?

是否可以在情节提要中使用 uiscrollview 设计视图并检查自动布局?

自动布局约束在运行时消失

UIImageView 在具有不同高度的自定义 UITableViewCell 内自动调整大小