2014-09-19 191 views
3

有人能幫助我理解這些錯誤並提出解決方法嗎?無法同時滿足約束條件。前導約束和尾隨約束衝突

2014-09-19 08:52:45.812 Zazzle [23292:1834589]無法同時滿足約束條件。 以下列表中的至少一個約束可能是您不想要的。試試這個:(1)看看每個約束,並試圖找出你不期望的; (2)找到添加不需要的約束或約束並修復它的代碼。 (注意:如果你看到,你不明白NSAutoresizingMaskLayoutConstraints,請參閱文檔UIView的財產translatesAutoresizingMaskIntoConstraints)

(
    "<NSLayoutConstraint:0x7c0ba1e0 H:|-(8)-[UIView:0x7c0bb900] (Names: '|':UIView:0x7c0b6c20)>", 
    "<NSLayoutConstraint:0x7c0ba210 H:[UIView:0x7c0bb900]-(8)-| (Names: '|':UIView:0x7c0b6c20)>", 
    "<NSLayoutConstraint:0x7c0942e0 UIView:0x7c0b6c20.left == UIView:0x7c0bbfa0.left>", 
    "<NSLayoutConstraint:0x7c0c03e0 UIView:0x7c0b6c20.right == UIView:0x7c0bbfa0.right>", 
    "<NSLayoutConstraint:0x7c635250 'UIView-Encapsulated-Layout-Width' H:[UIView:0x7c0bbfa0(2)]>" 
) 

Will attempt to recover by breaking constraint 
<NSLayoutConstraint:0x7c0ba210 H:[UIView:0x7c0bb900]-(8)-| (Names: '|':UIView:0x7c0b6c20)> 
+0

其中一個視圖的約束條件不能同時滿足。像'width == 20'和'width> = 50'具有相同的優先級。 – dasdom 2014-09-19 16:00:11

回答

0

的衝突是正確的有:前兩個約束條件設置子視圖的前導值和尾隨值與包含視圖控制器的左右邊緣相距8個像素,而第三行和第四行將它們設置爲恰好爲,即使與包含視圖的邊緣。刪除一對或另一個,或者像@dasdom所說的那樣,降低其中一個約束對的優先級。

3

fromFollow以下步驟

  1. 檢查一個UIObject,的限制,並刪除重複的,從Xcode中的尺寸檢查的任何約束。
  2. 如果沒有重複,找出導致問題的確切約束條件
  3. 嘗試將約束優先級從默認需要(1000)更改爲高(750)。
+0

3號爲我做了詭計。 – ppaulojr 2015-01-27 13:34:41