AutoLayout之通過代碼添加約束

//1.子控件禁用autorezing

view.translatesAutoresizingMaskIntoConstraints==NO;

//2.添加約束
/**
* Item : first item
* attribute : 約束
* relatedBy : =
* toItem : second item
* attribute : 約束
* multiplier : 乘以
* constant : 加上
*/

NSLayoutConstraint *constraint=[NSLayoutConstraint constraintWithItem:<#(id)#> attribute:<#(NSLayoutAttribute)#> relatedBy:<#(NSLayoutRelation)#> toItem:<#(id)#> attribute:<#(NSLayoutAttribute)#> multiplier:<#(CGFloat)#> constant:<#(CGFloat)#>]

/**
* VisualFormat : VFL語句
* options : 對齊方式
* metrics : 語句中的變量值
* views : 語句中用到的控件
*/

NSArray *constraint=[NSLayoutConstraint constraintsWithVisualFormat:<#(NSString *)#> options:<#(NSLayoutFormatOptions)#> metrics:<#(NSDictionary *)#> views:<#(NSDictionary *)#>]

//3.父子關係->添加到父控件上,兄弟關係->添加到父控件(self.view)上,

[self.view addConstraint:constraint];

//4.動畫
如果控件有默認的內容(寬高), 我們只需設置autoalyout的X/Y, autolayout會自動計算出寬高
//約束連線

@property (weak, nonatomic) IBOutlet NSLayoutConstraint *leftCos;

//修改約束的值

self.leftCos.constant += 100;

//執行動畫

[UIView animateWithDuration:3 animations:^{
    // 讓view上的約束執行動畫
    [self.view layoutIfNeeded];
}];
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章