天天看點

Autolayout 描述限制(constraint)文法

簡介

Autolayout 是 iOS/OS X 平台上一種重要的布局技術,整個的布局和适配技術是基于限制(constraints)進行的。我們可以通過兩種方式來為界面視圖的位置添加限制關系,一種是通過 Interface Building(IB),也就是在可視化界面下進行;另外一種則是通過代碼的形式進行描述。

本文主要是記錄下利用代碼添加限制時用來描述限制的文法,官網稱這種語言為 Visual Format Language(可視化格式語言)。

(PS:本文的例子來源于官網文檔)

文法

以下是一些利用 Visual Format Language 來描述限制(constraints)的例子。

标準的間隔

Autolayout 描述限制(constraint)文法

預設的水準間隔為 8。

寬度的限制

[button(>=)]
           
Autolayout 描述限制(constraint)文法

按鈕的寬度大于等于 50。

與父視圖的間距

Autolayout 描述限制(constraint)文法

與父視圖的左右間距均為 50.

垂直方向上的限制

Autolayout 描述限制(constraint)文法

兩個 UITextField 的垂直距離為 10。

緊湊限制

[maroonView][blueView]
           
Autolayout 描述限制(constraint)文法

兩個視圖緊湊布局。

設定限制的優先級

[button(@)]
           
Autolayout 描述限制(constraint)文法

設定限制的優先級為 20,優先級範圍從 1 到 1000。

視圖具有相同寬度限制

[button1(==button2)]
           
Autolayout 描述限制(constraint)文法

多個限制

[flexibleButton(>=,<=)]
           
Autolayout 描述限制(constraint)文法

設定按鈕的寬度大于等于 70,小于等于 100。

完整一行的布局

Autolayout 描述限制(constraint)文法

繼續閱讀