2016-05-14 59 views
1

我有兩個UIView與修復大小(30,30),我想在超視圖中的意見水平中心。這裏是佈局描述。爲什麼這個佈局約束不能滿足?

H:[view1(30)]-20-[view2(30)] 
V:|-20-[view1(30)] 
V:|-20-[view2(30)] 

,並添加在水平
view1.leftMargin = view2.rightMargin

的限制,但這些限制不工作作爲我的期望。
運行時警告說,無法同時不滿足約束條件。爲什麼?

我找到一個解決方案中心的景色,裏面加在左側有兩個佔位符視圖和右側,但我想知道爲什麼我的第一個解決方案沒有工作,怎麼知道我的約束滿足?我錯過了什麼?

+0

垂直或水平或兩者? – Alok

+0

@Alok橫向,對不起,我修改了這個問題。 – ZHENGYING

+0

k謝謝你的更新,我對H有疑問:| [view1(30)] - 20- [view2(30)] |。請把它作爲H:[view1(30)] - 20- [view2(30)]並刪除view1.left = view2.right – Alok

回答

0

view1.left=view2.right[view1(30)]-20-[view2(30)]是confict。 [view1(30)]-20-[view2(30)]意味着

view1.right+20=view2.left 
view1.height=30,view2.height=30 

因此蘋果不能讓constrainsts。

+0

謝謝!,但我不知道爲什麼'view1.right + 20 = view2.left'和'view1.left = view2.right'是衝突? – ZHENGYING

+0

這個明顯的衝突。 view1.left = view2.right view1.right = view1.left + 30 view2.left = view2.right-30.so你可以知道view1.left + 30 + 20 = view2.right + 30。 confict view1.left = view.right – xks

+0

對不起,我的最後一個約束是'view1.leftMargin = view2.rightMargin',不'view1.left = view2.right',您能不能給這種狀況的分析? – ZHENGYING

0

我曾經試圖解決您的問題,並提出要知道,與VFL,用於定心鑑於超視圖的唯一可能的方式是通過間隔意見。

正如您所定義的,您的view1view2也定義了兩個spacer views

然後,只需複製粘貼此:

V:|-20-[view1(30)] 
V:|-20-[view2(30)] 
H:|[spacer1][view1(30)]-20-[view2(30)][spacer1(==spacer2)]| 

,不需要view1.left = view2.right。請刪除它。

輸出附:
enter image description here

+0

感謝您的正確解決方案,但我知道該解決方案,我只是想知道,爲什麼我的解決方案約束髮生衝突。爲什麼不滿足。如何知道這一點? – ZHENGYING