Xcode警告:Automatic Preferred Max Layout Width is not available on iOS versions prior to 8.0

Xcode警告:Automatic Preferred Max Layout Width is not available on iOS versions prior to 8.0

  • 在Xcode6下开发时,使用autolayout的xib出现警告:Automatic Preferred Max Layout Width is not available on iOS versions prior to 8.0

  • 原因:xcode6下默认开启自动设置UILabel的preferredMaxLayoutWidth 的属性,而自动的特性只支持iOS8,故导致这个警告,如果想兼容iOS7则需要消除。

  • 解决方法:设置固定的preferredMaxLayoutWidth (勾选Explicit(其中如果label不是多行就不用勾选了,因为无效)如果只想支持iOS8就不要勾选了,动态的更加方便),如下图,并在代码中实时修改此属性(注:此属性只对多行的UILabel有效,即lines不为1,如果是1行的不需要修改)。

参考:http://stackoverflow.com/questions/25398312/automatic-preferred-max-layout-width-is-not-available-on-ios-versions-prior-to-8

其他注意点:如果勾选了Explicit,如图:

  • 此时使用函数动态计算label中文字内容的总高度不准确了
CGFloat textW = XMGScreenW - 2 * XMGCommonMargin;
        CGFloat textH = [self.text boundingRectWithSize:CGSizeMake(textW, MAXFLOAT) options:NSStringDrawingUsesLineFragmentOrigin attributes:@{NSFontAttributeName : [UIFont systemFontOfSize:15]} context:nil].size.height;

勾选前后对比图 如下:

posted @ 2015-10-10 17:49  紫之灵玲  阅读(558)  评论(0编辑  收藏  举报