AutoLayout代码控制约束是否起作用

今天在做一个需求的时候需要在TableView动态控制约束是否起作用,NSConstraint这个类主要有三个方式实现:
1.通过active设置,但这个只在iOS8.0以上能用
2.7.0可以通过对这个约束所附加的'view来addConstraint和remove实现,这里有个小坑,从xib或sb拖出的IBoutlet的storeage必须设成strong,不然remove后就会变成nil之后再add会crash。
3.通过控制 priority来实现,增大priority来激活,通过减小来使约束不起作用,这里也有个坑.如果在XIB或SB设置优先级是1000也就是required的就不能之后把他修改成小于1000的,不然crash,所以需要在xib中设置750,之后代码激活用赋值999,取消赋值用250

你可能感兴趣的:(iOS开发)