Symbol
Replacement rule
<visualFormatString>
(<orientation>:)?(<superview><connection>)?<view>(<connection><view>)*(<connection><superview>)?
<orientation>
H|V
<superview>
|
<view>
[<viewName>(<predicateListWithParens>)?]
<connection>
e|-<predicateList>-|-
<predicateList>
<simplePredicate>|<predicateListWithParens>
<simplePredicate>
<metricName>|<positiveNumber>
<predicateListWithParens>
(<predicate>(,<predicate>)*)
<predicate>
(<relation>)?(<objectOfPredicate>)(@<priority>)?
<relation>
==|<=|>=
<objectOfPredicate>
<constant>|<viewName>(see note)
<priority>
<metricName>|<number>
<constant>
<metricName>|<number>
<viewName>
Parsed as a C identifier.
This must be a key mapping to an instance ofNSViewin the passedviews dictionary.
<metricName>
Parsed as a C identifier. This must be a key mapping to an instance ofNSNumberin the passed metrics dictionary.
<number>
As parsed bystrtod_l, with the C locale.
我們以 btn1 和btn2 為例子
[btn1]-[btn2] 這個 “-” 標准連接字符 ,表示相距標准距離,好像是 8
[btn1 (>= 10)] btn1 寬度至少為10
H:|-50 -[btn1]-30-| “H“表示水平,”|”表示父視圖, 這說明 btn1 在水平方向距離父視圖左邊50 右邊30
[btn1(==btn2)] btn1 和btn2 寬度相等
[btn1 (>= 10,<= 50)] btn1的寬度在10和50 之間
說下這個<view>
我們可以這樣寫
|-[btn1]-|
也可以這樣
|- 50-[btn1]-|
也可以這樣
|-(>=10,<=30) - [btn1 (>=30)] -(<=20)-|