Object - C:
NSMutableArray *myConstraints = [NSMutableArray array];
NSDictionary *variableBindings = @{@"_btn_cancel" : _btn_cancel};
NSDictionary *metrics = @{@"height": 100,
@"margin": 10};
// ex1: 從水平方向佈局
[myConstraints addObjectsFromArray:
[NSLayoutConstraint constraintsWithVisualFormat:
@"H:|-margin-[_btn_cancel(height)]-|"
options:NSLayoutFormatDirectionLeadingToTrailing
metrics:metrics
views:variableBindings]];
//ex2: 從垂直方向佈局
[myConstraints addObjectsFromArray:
[NSLayoutConstraint constraintsWithVisualFormat:
@"V:[ViewB(ViewA)]-|"
options:NSLayoutFormatDirectionLeadingToTrailing
metrics:nil
views:NSDictionaryOfVariableBindings(ViewB,ViewA)]];
[self.view addConstraints:myConstraints];
參數說明:
options: 佈局時的順序,預設是由上而下(垂直)與由左而右(水平)
metrics : 一般为nil ,参数类型为NSDictionary, 為要傳入的變數
views :参数类型为NSDictionary, 為要傳入的Views
metrics : 一般为nil ,参数类型为NSDictionary, 為要傳入的變數
views :参数类型为NSDictionary, 為要傳入的Views
語法:
* " V: " 和 " H: "
分別代表由垂直或是水平方向來佈局。
*" | "
代表 Superview 的邊界。
*" - "
代表預設距離,例如在中間加上數字 " -20- ",則代表限制 20 個單位距離。
*" [ ] "
代表物件本身,括號內包含物件的變數名稱與大小限制,可以使用關係運算子(<=、>= 或 == 等)。
* " @ "
優先權,1 至 1000 的整數,優先權較大的條件會優先被滿足,例如 ,[ViewB(>=100@1000)],物件 ViewB 不可以小於 100 個單位長度或寬度會最優先被考慮。