教你如何在 Auto Layout 下設置兩個視圖之間的最小間距

做者:dom,原文連接,原文日期:2015-12-08
譯者:pmst;校對:星夜暮晨;定稿:Ceegit

假設如今要在某個視圖(view)中放置三個子視圖(subviews)。其中兩個子視圖放置在上方,第三個視圖緊挨着它們放到下方。不過上方的兩個視圖高度不定,而且你不知道哪一個更高一些。如今要求咱們使用自動佈局(Auto Layout)來控制下方視圖和上方視圖之間間距至少 10 單位像素。github

咱們該如何實現呢?實現技巧是使用不等式約束條件 (inequality) 以及設置約束優先級 (priority)。相關約束以下:swift

// 注意約束使用不等式 >=,以及設置優先級
leftViewConstraints += NSLayoutConstraint.constraintsWithVisualFormat("V:[red(50)]-(>=10)-[green]", options: [], metrics: nil, views: leftViews)
leftViewConstraints += NSLayoutConstraint.constraintsWithVisualFormat("V:[blue(100)]-(>=10)-[green]", options: [], metrics: nil, views: leftViews)
leftViewConstraints += NSLayoutConstraint.constraintsWithVisualFormat("V:[blue(100)]-(<=10@999)-[green]", options: [], metrics: nil, views: leftViews)

上方兩個視圖與底部視圖的最小間距不能小於 10(譯者注:這裏約束優先級默認是 1000)。此外藍色視圖與底部視圖的最大間距不得大於 10 ,其優先級爲 999。less

就是這樣!你能夠看到以下方截圖所示的結果。左側圖片中,藍色視圖的高度爲 100 單位像素,紅色視圖高度爲 50 單位像素。 右側圖片則剛剛相反。dom

這裏向你提供完整代碼的 playground 下載。佈局

譯者注:你能夠在下載的 playground 下方鍵入 view 屬性,而後在右側欄點擊 Quick Look,也就是那個眼睛,就能看到如上所示的截圖了!ui

本文由 SwiftGG 翻譯組翻譯,已經得到做者翻譯受權,最新文章請訪問 http://swift.ggspa

相關文章
相關標籤/搜索