说明
第三方框架,目前比较流行
mas_makeConstraints
创建约束,重复添加会有冲突
UIView *blueView=[[UIView alloc]init]; blueView.backgroundColor=[UIColor blueColor]; //框架已经实现了 // blueView.translatesAutoresizingMaskIntoConstraints = NO; [self.view addSubview:blueView]; [blueView mas_makeConstraints:^(MASConstraintMaker *make) { make.width.equalTo(@100); make.height.mas_equalTo(100); //上面两行代码可缩写成下面的一行代码 // make.width.height.equalTo(@100); //也可写成下面的一行代码 // make.size.mas_equalTo(100); make.right.equalTo(self.view.mas_right).and.with.offset(-20); make.bottom.equalTo(self.view).multipliedBy(1.0).offset(-20); //默认为父控件,可省略,不过不建议,可读性不好 // make.bottom.offset(-20);
说明:
- make.后面表示哪个约束,如make.width表示宽度约束
- equalTo与mas_equalTo的区别
- 使用equalTo需要将数据封装成对象
- mas_equalTo则框架内部帮我们封装
- self.view.mas_bottom括号里面调用某个属性需要使用mas开头
- self.view.mas_bottom的.mas_bottom可省略,框架有适配
- and,with只是为了增强可读性,返回的是self本身
- multipliedBy(1.0)倍数
使用edge与inset四周边距
- make.edges.equalTo(self.view).insets(UIEdgeInsetsMake(50, 50, 50, 50));距离边框50
- make.edges.equalTo(self.view);整个覆盖
mas_remakeConstraints
先删除,再创建约束,可以多次调用,以最后一次为准
[blueView mas_remakeConstraints:^(MASConstraintMaker *make) { }];
mas_updateConstraints
修改某些约束
[blueView mas_updateConstraints:^(MASConstraintMaker *make) { }];
总结约束类型
- 尺寸:width/height/size
- 边界:left/leading/right/trailing/top/bottom
- 中心点:center/centerX/centerY
- 边距:edges