iOS StroyBoard中AutoLayout高級約束之約束優先級

最初剛工做時,用過一段時間的SB界面式開發,後來換了團隊後你們換爲純代碼佈局。如今針對某些模塊進行可視化佈局開發,因此總結一下當初的約束使用方法,溫故而知新。佈局

  1. 約束優先級
    圖片描述

    如上圖,label控件的1號和2號約束表明左右約束。ui

    圖片描述

    點擊某一個具體約束,右側就會顯示出此約束的詳細信息。其中Priority的值就是此約束的優先級,分爲三種,required(1000)爲默認的比例等級,High(750)爲高優先級,Low(250)爲低優先級。值越高則優先級越強。
    例如:label控件中的1號約束優先級爲1000,2號約束優先級750,那麼就意味着label的右側比左側更容易「改變」。spa

  2. 抗拉伸屬性
    抗壓縮表明A控件不被別的控件相對A控件設置的約束而拉伸或變形。在sb中此屬性如圖:圖片描述

    hugging屬性就是抗拉伸屬性,擁有水平方向的抗壓縮和垂直方向的抗壓縮優先級兩個選項。圖片

    例如:當控件的hugging值在水平方向上爲250時,它自身的抗拉伸優先級是低於左右兩側的約束的優先級的,若是控件的內容已經多於當前控件能容納的「體積」,或者左右約束的值此刻變小,則這個控件會被拉伸。開發

  3. 抗壓縮屬性
    抗壓縮表明A控件不被別的控件相對A控件設置的約束而壓縮或變形。在sb中此屬性如圖:圖片描述

    Content Compression屬性就是抗壓縮屬性,擁有水平方向的抗壓縮和垂直方向的抗壓縮優先級兩個選項。it

    例如:當控件的compression值在水平方向低於1000時,而2號約束的優先級爲1000,那麼當2號約束右側的空間內容變大時,則2號約束會把label控件向左「擠」,由於它的抗壓縮值不足以和2號約束優先級值相對抗。io

相關文章
相關標籤/搜索