2014-08-30 81 views
1

Example 1Example 2UIView的擁抱使用自動佈局

在上面的所有子視圖,橙色,藍色和綠色的觀點是黃色的視圖的子視圖。我需要父(黃色)視圖的邊框來擁抱它的子視圖。這兩幅圖像之間發生的唯一移動是綠色子視圖向上和向右移動。

因爲橙色視圖的底部現在低於綠色視圖的底部,所以父視圖擁抱橙色視圖的底部邊緣。

同樣,由於綠色視圖的右邊緣超過了藍色視圖的右邊緣,父視圖擁抱了綠色視圖的右邊緣。

有沒有辦法做到這一點與自動佈局的約束,還是我必須編寫自定義代碼?

回答

2

對於底部邊緣,橙色和綠色視圖均需要兩個垂直空間約束。它們是:

  • 垂直空間的限制有關係設置爲「大於或等於」,並不斷設置爲0
  • 垂直空間的限制有關係設置爲「平等」,不斷設置爲0,優先低於第一個約束

第一個約束確保無論如何,空間將大於或等於零。第二個約束條件是(如果可能的話)也具有等於零的空間。

然後可以使用水平空間約束代替藍色和綠色視圖右邊緣的上述內容。