Masonry的配置和使用-许笑欢

Masonry配置

- 推荐使用pods方式引入类库,pod 'Masonry',若不知道pod如何使用,情况我的另一篇文章: 提高ios开发效率的工具

- 引入头文件 #import "Masonry.h"

Masonry使用讲解

mas_makeConstraints 是给view添加约束,约束有几种,分别是边距,宽,高,左上右下距离,基准线。添加过约束后可以有修正,修正有offset(位移)修正和multipliedBy(倍率)修正。

语法一般是 make.equalTo or make.greaterThanOrEqualTo or make.lessThanOrEqualTo + 倍数和位移修正。

注意点1: 使用 mas_makeConstraints方法的元素必须事先添加到父元素的中,例如[self.view addSubview:view];

注意点2: masequalTo 和 equalTo 区别:masequalTo 比equalTo多了类型转换操作,一般来说,大多数时候两个方法都是 通用的,但是对于数值元素使用mas_equalTo。对于对象或是多个属性的处理,使用equalTo。特别是多个属性时,必须使用equalTo,例如 make.left.and.right.equalTo(self.view);

注意点3: 注意到方法with和and,这连个方法其实没有做任何操作,方法只是返回对象本身,这这个方法的左右完全是为了方法写的时候的可读性 。make.left.and.right.equalTo(self.view);和make.left.right.equalTo(self.view);是完全一样的,但是明显的加了and方法的语句可读性 更好点。

Masonry使用例子

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
// exp1: 中心点与self.view相同,宽度为400*400
-(void)exp1{
     UIView *view = [UIView  new ];
     [view setBackgroundColor:[UIColor redColor]];
     [self.view addSubview:view];
     [view mas_makeConstraints:^(MASConstraintMaker *make) {
          make.center.equalTo(self.view);
          make.size.mas_equalTo(CGSizeMake(400,400));
     }];
}
//exp2: 上下左右边距都为10
-(void)exp2{
     UIView *view = [UIView  new ];
     [view setBackgroundColor:[UIColor redColor]];
     [self.view addSubview:view];
     [view mas_makeConstraints:^(MASConstraintMaker *make) {
         make.edges.equalTo(self.view). with .insets(UIEdgeInsetsMake(10, 10, 10, 10));
         //  make.left.equalTo(self.view).with.offset(10);
         //  make.right.equalTo(self.view).with.offset(-10);
         //  make.top.equalTo(self.view).with.offset(10);
         //  make.bottom.equalTo(self.view).with.offset(-10);
     }];
}
//exp3 让两个高度为150的view垂直居中且等宽且等间隔排列 间隔为10
-(void)exp3{
     UIView *view1 = [UIView  new ];
     [view1 setBackgroundColor:[UIColor redColor]];
     [self.view addSubview:view1];
     UIView *view2 = [UIView  new ];
     [view2 setBackgroundColor:[UIColor redColor]];
     [self.view addSubview:view2];
     [view1 mas_makeConstraints:^(MASConstraintMaker *make) {
         make.centerY.mas_equalTo(self.view.mas_centerY);
         make.height.mas_equalTo(150);
         make.width.mas_equalTo(view2.mas_width);
         make.left.mas_equalTo(self.view.mas_left). with .offset(10);
         make.right.mas_equalTo(view2.mas_left).offset(-10);
     }];
     [view2 mas_makeConstraints:^(MASConstraintMaker *make) {
         make.centerY.mas_equalTo(self.view.mas_centerY);
         make.height.mas_equalTo(150);
         make.width.mas_equalTo(view1.mas_width);
         make.left.mas_equalTo(view1.mas_right). with .offset(10);
         make.right.equalTo(self.view.mas_right).offset(-10);
     }];
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值