iOS約束沖突一般分為兩類:邊距約束沖突或者尺寸沖突,通常可通過修改其中一方控件的約束優先級,這就使用到了content Hugging/content Compression Resistance,而使用的前提需要確定其控件大小,一般在autolayout成功約束後使用.
設置最大優先級,只要將該控件優先級設置的比另外一個高,就可以確保在發生約束沖突時改變另一個約束.
- (void)setContentHuggingPriority:(UILayoutPriority)priority forAxis:(UILayoutConstraintAxis)axis NS_AVAILABLE_IOS(6_0);
同樣的,就是可以設置控件最小優先級了
- (void)setContentCompressionResistancePriority:(UILayoutPriority)priority forAxis:(UILayoutConstraintAxis)axis NS_AVAILABLE_IOS(6_0);
* Intrinsic Content Size:固有大小,像UIView之類控件都有自身固有大小.
另附:
// 否則在6/6plus上不准確 self.label.preferredMaxLayoutWidth = SCREEN_WIDTH - 40;
以上所述是小編給大家介紹的iOS 約束沖突的解決方案,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對本站網站的支持!