iOS自动布局 NSLayoutConstraint基础

必要的一条:

要使用NSLayoutConstraint必须设置translatesAutoresizingMaskIntoConstraints为NO;

例:

// 1 : 创建一个黄色的View

UIView *yellowView = [[UIView alloc]init];

yellowView.backgroundColor = [UIColor yellowColor];

// 2 : 注意首先要添加到subView里面

[self.view addSubview:yellowView];

// 3 : 取消黄色View的autoresizing

// YES 代表使用autoresizing 如果食用autolayout需要设置为NO

yellowView.translatesAutoresizingMaskIntoConstraints = NO;

// 4 : 设置约束

/**

1).WithItem  代表的是需要设置约束的空间(yellowView)

2).attribute 代表的是要做约束的那一条线

NSLayoutAttributeLeft = 1,//左侧

NSLayoutAttributeRight,//右侧

NSLayoutAttributeTop,//上方

NSLayoutAttributeBottom,//下方

NSLayoutAttributeLeading,//首部

NSLayoutAttributeTrailing,//尾部

NSLayoutAttributeWidth,//宽度

NSLayoutAttributeHeight,//高度

NSLayoutAttributeCenterX,//X轴中心

NSLayoutAttributeCenterY,//Y轴中心

NSLayoutAttributeBaseline,//文本底标线

NSLayoutAttributeNotAnAttribute = 0//没有属性

3).relatedBy 比较的方式 =(NSLayoutRelationEqual) <=(NSLayoutRelationLessThanOrEqual) >=(NSLayoutRelationGreaterThanOrEqual)

4).toItem    代表的是被比较的控件

5).attribute 代表的是被比较的控件的比较的位置

*/

// 4.1 : 设置距离上方

NSLayoutConstraint *yellowViewTop = [NSLayoutConstraint constraintWithItem:yellowView attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeTop multiplier:1 constant:100];

[self.view addConstraint:yellowViewTop];

// 4.2 : 设置距离左边

NSLayoutConstraint *yellowViewLeft = [NSLayoutConstraint constraintWithItem:yellowView attribute:NSLayoutAttributeLeft relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeLeft multiplier:1 constant:100];

[self.view addConstraint:yellowViewLeft];

// 4.3 : 设置宽度

// 注意:设置自身的宽高,不需要设置toItem对象,直接传入nil

NSLayoutConstraint *yellowWidth = [NSLayoutConstraint constraintWithItem:yellowView attribute:NSLayoutAttributeWidth relatedBy:NSLayoutRelationEqual toItem:nil attribute:NSLayoutAttributeWidth multiplier:1 constant:100];

// 注意: 约束添加到哪个对象身上

[yellowView addConstraint:yellowWidth];

// 4.4 : 设置高度

NSLayoutConstraint *yellowHeight = [NSLayoutConstraint constraintWithItem:yellowView attribute:NSLayoutAttributeHeight relatedBy:NSLayoutRelationEqual toItem:nil attribute:NSLayoutAttributeHeight multiplier:1 constant:100];

[yellowView addConstraint:yellowHeight];

效果如图:

iOS自动布局 NSLayoutConstraint基础_第1张图片

*建议使用第三方插件Masonry(github即可下载)

*简化代码如下

// 1 : 创建一个黄色的View

UIView *yellowView = [[UIView alloc]init];

yellowView.backgroundColor = [UIColor yellowColor];

// 2 : 注意首先要添加到subView里面

[self.view addSubview:yellowView];

// 3 : 设置约束

[yellowView mas_makeConstraints:^(MASConstraintMaker *make) {

make.top.left.mas_equalTo(100);

make.height.width.mas_equalTo(100);

}];

你可能感兴趣的:(iOS自动布局 NSLayoutConstraint基础)