2013-08-29 37 views
4

我很好奇,如果有可能的話,我可以在最近的可見(非隱藏)鄰居中添加一個約束。我可以在iOS上指定一個AutoLayout約束來間隔到最近的可見鄰居嗎?

想象一下,我有3個UIViews:

[廠景] - [視圖2] - [VIEW3]

可以說,目前旗下有10px的各個視圖之間。

我想要的是view1距離最近的可見鄰居10px。因此,當我隱藏view2時,view3將靠近,以便view1和view3之間只有10px。

這是可能的通過AutoLayout約束?

+0

不,不是。您必須手動更新您的約束。 – iHunter

+1

您不能通過隱藏中間視圖自動執行此操作,但如果您將其從超級視圖中移除,則可以執行此操作。 – rdelmar

回答

4

實現此目的的一種方法是在控制器中創建IBOutlet並將第二個視圖的寬度約束與它關聯。無論何時需要隱藏view2,請修改約束的constant屬性,而將其設置爲0。無論何時需要顯示視圖,都要恢復約束的值。這種方式view3會動態地移動。