天天看點

iOS 限制沖突解決方法

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;