1、当要添加约束的控件与父控件大小相等时:
[_scrollView mas_makeConstraints:^(MASConstraintMaker *make) {
// 与控制器视图等大
make.top.left.bottom.right.mas_equalTo(self.view);
}];
或者:
[self.scroll mas_makeConstraints:^(MASConstraintMaker *make) {
make.edges.mas_equalTo(@0);
}];
2、对于多个子控件,其宽、高相等,顶部/底部、左边/右边对齐的时候,可以将子控件添加到一个数组中,通过如下方法进行设置,可以快速设置约束:
• 子控件水平摆放时:
[_imgViewArr mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.bottom.mas_equalTo(_scrollView); // 数组中子控件与父控件scrollView的顶部及底部对齐
make.width.height.mas_equalTo(_scrollView); // 数组中子控件的大小与父控件scrollView的大小一致
}];
• 子控件垂直摆放时:
make.left.right.mas_equalTo(_scrollView); // 数组中子控件与父控件scrollView的左边及右边对齐
make.width.height.mas_equalTo(_scrollView); //数组中子控件与父控件scrollView的大小一致
3、对于数组中子控件相互位置约束设定可以用以下方法设定
[_imgViewArr mas_distributeViewsAlongAxis:MASAxisTypeHorizontal withFixedSpacing:0 leadSpacing:0 tailSpacing:0];
数组中子控件水平摆放时,子控件间的固定间距是0(可以改为其它数值),数组第一个控件左间距为0,数组最后一个控件右间距为0
4、在 - (NSArray *)mas_makeConstraints:(void(^)(MASConstraintMaker *))block方法中设置单个控件的约束方法汇总:
make.top.mas_equalTo(self.view).with.offset(topM); 子控件顶部与父控件顶部之间的约束,设置y
make.left.mas_equalTo(margin); 设置子控件相对于父控件的x,约束类型相同可以省略父控件
make.top.mas_equalTo(self.userNameField.mas_bottom).with.offset(rowM); 控件顶部与另一控件底部距离
make.leading.mas_equalTo(self.userNameField.mas_leading); 控件与另一控件左对齐
make.trailing.mas_equalTo(self.userNameField.mas_trailing); 控件与另一控件右对齐
make.height.mas_equalTo(self.userNameField); 两控件等高
make.height.mas_equalTo(height); 直接设定控件的高度
make.centerY.mas_equalTo(self.rmbLabel); 控件与另一控件垂直中心对齐
make.leading.mas_equalTo(self.rmbLabel.mas_trailing).offset(colM); 控件左边距离另一控件右边的距离
make.top.mas_equalTo(self.mas_topLayoutGuide); 子控件的顶部与状态栏的底部对齐
make.left.right.mas_equalTo(self.view); 子控件的左右与父控件对齐
make.height.mas_equalTo(44); 控件的高度固定,使用mas_equalTo可以直接用数字
make.center.mas_equalTo(_topView); 子控件的中心点与父控件的中心点重合
make.baseline.mas_equalTo(_titleLabel); 控件与另一控件的底部对齐