Masonry
Masonry是一个轻量级的布局框架 拥有自己的描述语法 采用更优雅的链式语法封装NSAutoLayout, 简洁明了并具有高可读性 而且同时支持 iOS 和 Max OS X。使用Masonry能够使用简单的语法进行Autolayout布局
Masonry常用属性与NSLayoutAttrubute的对照表如下
Masonry | NSAutoLayout | 说明 |
---|---|---|
view.mas_left | NSLayoutAttributeLeft | 左侧 |
view.mas_top | NSLayoutAttributeTop | 上侧 |
view.mas_right | NSLayoutAttributeRight | 右侧 |
view.mas_bottom | NSLayoutAttributeBottom | 下侧 |
view.mas_leading | NSLayoutAttributeLeading | 首部 |
view.mas_trailing | NSLayoutAttributeTrailing | 尾部 |
view.mas_width | NSLayoutAttributeWidth | 宽 |
view.mas_height | NSLayoutAttributeHeight | 高 |
view.mas_centerX | NSLayoutAttributeCenterX | 横向中点 |
view.mas_centerY | NSLayoutAttributeCenterY | 纵向中点 |
view.mas_baseline | NSLayoutAttributeBaseline | 文本基线 |
使用Masonry进行Autolayout布局
Masonry三种Autolayout Compare类型
.equalTo
相当于NSLayoutRelationEqual
,为相等.lessThanOr
EqualTo相当于NSLayoutRelationLessThanOrEqual
,为小于或者等于.greaterThanOrEqualTo
相当于NSLayoutRelationGreaterThanOrEqual
,为大于或等于
// **使用UIView/NSView进行比较**
[view1 mas_makeConstraints:^(MASConstraintMaker *make) {
//these two constraints are exactly the same
make.left.greaterThanOrEqualTo(label.mas_left);
make.left.right.equalTo(lable);
}];
..
//2. **直接使用NSNumber进行比较**
[view1 mas_makeConstraints:^(MASConstraintMaker *make) {
//width >= 200 && width <= 400
make.width.greaterThanOrEqualTo(@200);
make.width.lessThanOrEqualTo(@400)
}];
..
//3. **使用CGFloat**
[subGreenView mas_makeConstraints:^(MASConstraintMaker *make) {
//width >= 200 && width <= 400
make.width.mas_lessThanOrEqualTo(200);
make.width.mas_greaterThanOrEqualTo(400);
}];
两个同级的view进行约束
[subGreenView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(subGreenView.mas_left).offset(10);
make.right.equalTo(subGreenView.mas_right).offset(10);
}];
left, right, top, bottom, centerX, centerY, leading, trailing, width, height
可以通过mas_makeConstraints
关联View的left, right,