问题描述:Xcode 升级到了7.2,IOS 9.2. App运行正常;当在 IOS 8.2 上运行时,程序Crash,并报错:Objective: {objective 0x174620240: <750:45.9999, 251:108852, 250:38689> + _UILayoutGuide maker > .......
原因分析:IOS 系统bug,一般报此错误,都是由于使用了自动布局,里面控件宽度、高度使用了约束比例,由于约束比例计算出现无限小数问题造成的 Crash。距离:UILabel 设置了width 和 height 比例为: 2:3 。则在IOS 8.2 及以下系统中,有可能Crash掉。
解决方案:将Multiplier 设置为小数,不要使用比例形式。如 2:3 修改为:0.6666 。
补充:Xcode 控制台错误信息中还有其他布局错误信息,比如750,250,251,999 ……之类的,一开始以为是伸缩、拉伸参数设置错误;修改后,依旧报错。最后照上面步骤,把 Multiplier 都修改为小数形式,重新运行,OK。
参考链接:http://stackoverflow.com/questions/28111635/ios-aspect-ratio-constraint-breaks-on-ios7-works-on-ios8