+ (id)constraintWithItem:attribute:relatedBy:toItem: attribute:multiplier:constant:佈局
參數說明:測試
WithItem:要約束的對象orm
attribute:對象的佈局屬性對象
relatedBy:佈局關係ip
toItem:參照對象開發
attribute:參照對象的佈局屬性it
multiplier:乘數io
constant:常數class
自動佈局的核心公式可視化
Object1.property1=(object2.property2*multiplier)+constant value
————————————————————————————————————————
-(void)addConstraint:(NSLayoutConstraint *)constraint
-setNeedsUpdateConstraints
-layoutIfNeeded
[button setTranslatesAutoresizingMaskIntoConstraints:NO];
------------------------------------------------------------------------------
// 2.1 水平方向的約束
NSLayoutConstraint *constraintX = [NSLayoutConstraint constraintWithItem:button attribute:NSLayoutAttributeCenterX relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeCenterX multiplier:1.0f constant:0.0f];
[self.view addConstraint:constraintX];
// 2.2 垂直方向的約束
NSLayoutConstraint *constraintY = [NSLayoutConstraint
=========================================
測試演練5——VFL演練(1)
// 1. 建立三個按鈕:top、center、bottom
// 2. 三個按鈕寬度爲100點
// 3. 三個按鈕距離屏幕右側20點
// 4. bottom按鈕距離屏幕底部20點,每一個按鈕縱向間距爲20點
NSDictionary *viewDict = NSDictionaryOfVariableBindings(top, center, bottom);
NSArray *consh1 = [NSLayoutConstraint constraintsWithVisualFormat:@"H:[top(100)]-20-|" options:0 metrics:nil views:viewDict];
……
NSArray *consv = [NSLayoutConstraint constraintsWithVisualFormat:@"V:[top(40)]-20-[center(40)]-20-[bottom(40)]-20-|" options:0 metrics:nil views:viewDict];
……