UILabel没有使用自动布局完全调整大小(几乎可以 - 一线短)

时间:2014-10-22 20:38:34

标签: ios objective-c iphone autolayout constraints

使用UILabel使用自动布局时遇到一个奇怪的问题,它的大小调整到内容大小减去一行(让我疯狂)。所以基本上,当它缩小到iPhone 5或6时,它似乎到达应该减去几个像素的位置,最后导致椭圆形。它在6+上工作正常,这是XIB的大小。

这里是XIB的样子以及我设置的约束。标签是"这里的大长标签是事件描述"。

enter image description here

基于这个stack post,我以为我会想出来的。我尝试了帖子中提到的两种方法。屏幕截图中的所有四个约束都设置为1,000。如果我按照帖子所说的那样做,并添加一个优先级为500的高度约束,这个约束小于垂直拥抱和垂直压缩阻力优先级,它仍然无法工作。我还没有设置高度约束,保持首选宽度设置并设置了前导和尾随空间约束,这在评论中提到。行数设置为0。

要尝试提供更多详细信息,UILabel的{​​{1}}设置为UIView。然后,我将contentView添加到contentViewUIScrollView通过将UIScrollView固定为0到四个边来自动调整大小。 contentView也受限于屏幕宽度(不理想,但只有我能够使其工作 - 不确定它是否与此问题有关)。我在控制台中没有遇到任何约束问题。 contentContainer的{​​{1}}设置为translatesAutoresizingMaskIntoContraints。这是NO在运行时的样子:

enter image description here

底部长一行应该适合。有人请帮助我!

1 个答案:

答案 0 :(得分:3)

我想我可能已经解决了这个问题,但解决方案看起来很糟糕。这似乎是设置preferredMaxLayoutWidth的问题。它适用于我为iPhone 6+设置的内容,但出于某种原因,iPhone 5/6上的宽度几乎不足。刚补充一下:

self.eventDescriptionLabel.preferredMaxLayoutWidth = self.eventDescriptionLabel.frame.size.width;

现在它运作正常。