第三方框架Masonry简述(约束管理)

Masonry链接:https://github.com/SnapKit/Masonry

作用:方便使用代码添加AutoLayout约束(AutoLayout在一定意义上替换了Frame,对Frame的改变变成对约束的操作)

使用步骤:

  1、手动添加或者使用Cocoapods添加Masonry框架,并导入头文件Masonry.h

  2、将需要添加约束的对象加入到父视图中

  3、下面的代码的约束是以父视图为基准点的

以下代码中:使用这种注释方式,可以为属性添加标注,option+左键查看,声明一个Button属性

/** 这是专业的注释写法注释 前面两颗星 后面一颗星*/
/** 按钮1 屏幕右上角 距离上边缘20 右边缘20 宽80 高40 ,颜色红*/
@property (nonatomic,strong) UIButton *redBtn;

以下代码:使用Masonry中的mas_makeConstraints:(void(^)(MASConstraintMaker *make))block给属性添加约束对象,具体约束在block中实现

在block中不要对属性进行操作,所有的约束属性已经全部交给MASConstraintMaker处理,使用make添加约束

单独对控件的上下左右进行约束时,这里规定 “ + ” 号代表向下和向右移动,“ - ” 号代表向上和向左移动

make.size  make.top  make.left  make.bottom  make.right

- (UIButton *)redBtn{
    if (!_redBtn) {
        _redBtn = [UIButton buttonWithType:0];
        _redBtn.backgroundColor = [UIColor redColor];
#warning 添加约束之前必须把对应控件添加到父视图中
        [self.view addSubview:_redBtn];
        //使用Masonry的前提条件 pod框架 并 引入Masonry.h文件
        [_redBtn mas_makeConstraints:^(MASConstraintMaker *make) {
            make.size.mas_equalTo(CGSizeMake(80, 40));//当前控件的size
            //规定 +号代表向下和向右移动,-号代表向上和向左移动
            make.top.mas_equalTo(20);//
            make.right.mas_equalTo(-20);
        }];
    }
    return _redBtn;
}

 

对属性添加edges约束

/** 视图1 全屏 即四周距离父视图边缘都为0*/
@property (nonatomic,strong) UIView *blueView;

/** 视图2 四周都为(20,30,40,50)*/
@property (nonatomic,strong) UIView *orangeView;

edges中的参数,正数表示向中间移动

make.edges.mas_equalTo(UIEdgeInsetsMake(20, 30, 40, 50));

make.edges.mas_equalTo(0);//当边距都为零时,可以用这种简写方式

- (UIView *)orangeView{
    if (!_orangeView) {
        _orangeView = [UIView new];
        _orangeView.backgroundColor = [UIColor orangeColor];
        [self.view addSubview:_orangeView];
        [_orangeView mas_makeConstraints:^(MASConstraintMaker *make) {
            //edges中的参数 正数表示向中间移动
            make.edges.mas_equalTo(UIEdgeInsetsMake(20, 30, 40, 50));
        }];
    }
    return _orangeView;
}
- (UIView *)blueView{
    if (!_blueView) {
        _blueView = [UIView new];
        _blueView.backgroundColor = [UIColor blueColor];
        [self.view addSubview:_blueView];
        [_blueView mas_makeConstraints:^(MASConstraintMaker *make) {
            make.edges.mas_equalTo(0);//当边距都为零时,可以用这种简写方式
        }];
    }
    return _blueView;
}

 3、未完,下午继续完成

 

转载于:https://www.cnblogs.com/standup-liang/p/4991278.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值