Auto Layout學(xué)習(xí)1
使用步驟:1.利用NSLayoutConstraint類創(chuàng)建約束對(duì)象 2.將約束對(duì)象添加到View上
例子:將一個(gè)正方形view加入vc中
UIView *centerView = [[UIView alloc]init]; [self.view addSubview:centerView]; centerView.backgroundColor = UIColorFromHex(0xFFEC8B, 1.0); centerView.translatesAutoresizingMaskIntoConstraints = NO;注:UIColorFromHex是我自己定義的宏下面加入約束
NSLayoutConstraint *widthConstraint = [NSLayoutConstraint constraintWithItem:centerView attribute:NSLayoutAttributeWidth relatedBy:NSLayoutRelationEqual toItem:nil attribute:NSLayoutAttributeNotAnAttribute multiplier:0.0 constant:150.0]; [self.view addConstraint:widthConstraint]; NSLayoutConstraint *heightConstraint = [NSLayoutConstraint constraintWithItem:centerView attribute:NSLayoutAttributeHeight relatedBy:NSLayoutRelationEqual toItem:nil attribute:NSLayoutAttributeNotAnAttribute multiplier:0.0 constant:150]; [self.view addConstraint:heightConstraint]; NSLayoutConstraint *topConstraint = [NSLayoutConstraint constraintWithItem:centerView attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeTop multiplier:1.0 constant:200]; [self.view addConstraint:topConstraint]; NSLayoutConstraint *leftConstraint = [NSLayoutConstraint constraintWithItem:centerView attribute:NSLayoutAttributeLeft relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeLeft multiplier:1.0 constant:100]; [self.view addConstraint:leftConstraint];這里簡單介紹一下constraintWithItem: 這里是要被約束的對(duì)象
attribute: 這里是約束種類(有好多種,下個(gè)文章分析吧)
relatedBy: 關(guān)系大小
typedef NS_ENUM(NSInteger, NSLayoutRelation) { NSLayoutRelationLessThanOrEqual = -1, NSLayoutRelationEqual = 0, NSLayoutRelationGreaterThanOrEqual = 1,};toItem: 建立約束關(guān)系的對(duì)象attribute: 約束種類
multiplier:倍數(shù)
constant:常量
約束公式: 被約束對(duì)象.約束attribute = (關(guān)系對(duì)象.約束attribute) * 倍數(shù)multiplier + 常量constant;
詳細(xì)屬性關(guān)系,使用例子下章說吧。。。因?yàn)槲易约哼€沒搞懂
補(bǔ)充iOS8以后新版約束方法
NSLayoutConstraint *centerX = [NSLayoutConstraint constraintWithItem:centerView attribute:NSLayoutAttributeCenterX relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeCenterX multiplier:1.0 constant:0]; centerX.active = YES;
|
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注