项目最近将要上线,最近几天要做的修bug,优化性能,但是控制台上的layout 约束警告引起我的注意,自iOS8之后,这些警告不会对项目的运行没影响,但是做为开发的我们实在看不下去了,决定要干掉它喽!然后查找资料,结合着自己,整理了下面的几个方面:
1、如果动态更新/增加与父视图的约束,请先保证视图是添加其父视图上,然后再添加约束。
2、Unable to simultaneously satisfy constraints 这类问题一般都是诸如约束之间冲突、约束规则含糊造成的,配合log输出的提示,找到相应的约束调整优先级或者增加删除约束即可。
3、NSLayoutConstraint “UIView-Encapsulated-Layout-Height”问题。。。这个问题感觉应该是iOS8.0之后才出现的,我之前并没有遇到过类似的问题。首先描述一下出现该warning的场景:使用Auto Layout计算UITableViewCell的高度。根据提示发现在动态更新约束时,系统会自动添加新的高度约束规则(是不是跟iOS8更新的SizeClassCell有关系呢)而这几个规则可能会存在约束冲突,一般说来都是打破自己添加的约束来优先满足系统强制添加的约束,解决办法就是降低这几个约束的优先级,1000-》999就可以了。StackOverFlow上的类似问题http://stackoverflow.com/questions/25059443/what-is-nslayoutconstraint-uiview-encapsulated-layout-height-and-how-should-i
学习了!有需要分享给大家!