警告:Attribute Unavailable Automatic Preferred Max Layout Width is not available on iOS versions pri

来源:互联网 发布:linux nano 保存 编辑:程序博客网 时间:2024/04/28 14:53

警告

Attribute Unavailable Automatic Preferred Max Layout Width is not available on iOS versions prior to 8.0

原因

UILabel自动换行,在不同的iOS版本下表现不一致导致的UI问题
表现为在iOS7以上的系统中,UILabel能够自动换行,多行显示的字符串,而在iOS6上面则不会自动换行,直接打省略号。正常情况下,numberOfLines设置为0,UILabel就会自动换行了。
但是在iOS6下面需要设置preferredMaxLayoutWidth,autolayout才会判断到折行的位置,才能正确的显示多行的UILabel

解决方案

但是 preferredMaxLayoutWidth设置为多少才是正确的呢?
如果你知道一个确切的width当然是最好的,就可以按照最小屏幕宽度的 iphone4 来计算, 然后进行约束。
但是如果UILabel的宽度是自适应的,不确定,那么可以使用如下的代码设置:

- (void)layoutSubViews{    [super layoutSubViews];    self.label.preferredMaxLayoutWidth = self.label.bounds.size.width;}

当label已经显示到界面上的时候,那么宽度就已经确定了,可以直接用此宽度作为最大autolayout宽度设置。这样就正常了

相关文章: 警告:Automatic Preferred Max Layout Width before iOS8.0

0 0