【发布时间】:2015-08-28 13:15:58
【问题描述】:
我有一个UILabel 用于其他视图中的项目描述,所有这些都使用 Interface Builder 中的约束进行布局 - 您可以在下图中看到所有相关约束。行数也设置为0。
我没有设置高度限制,因为我希望 UILabel 根据它包含的文本调整大小。相反,发生的事情就在
[self.view layoutIfNeeded];
被调用,UILabel 的高度被设置为0。即使我没有将其他文本设置为UILabel,它在Interface Builder 中设置了默认值Item description。
上面的item标题标签也是这样设置的,但是那个并没有被压缩成0,所以我有点糊涂了。
有人遇到过这种行为吗?
【问题讨论】:
-
控制台中是否有任何 AutoLayout 约束错误? AutoLayout 由于冲突而放弃了一些约束?
-
我知道你不想硬核到那个 UILabel 的高度,但是如果你这样做了会发生什么?您在控制台中是否遇到任何 AutoLayout 约束冲突?
-
我认为您需要删除“顶部空间到”或“底部空间到”。否则高度是由这些约束设置的?不过我可能错了……
-
嗨亚瑟。 bottom space to 约束实际上是一个依赖于
UILabel的约束,即如果UILabel变大,另一个视图应该移动 -
解决了 - 将 UILabel 的垂直压缩阻力优先级设置为 1000(默认为 750)似乎对我有用。
标签: ios objective-c autolayout