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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章