Masony小总结

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);  控件与另一控件的底部对齐

你可能感兴趣的:(Masony小总结)