Masonry的使用(一)--初步使用

Masonry

就是一个第三方为我们封装好的一个框架,其使用点语法,可以非常便利的添加约束,且语法通俗

  • 使用前的准备工作

    • 要在工程中倒入这个第三方库
      在工程中创建一个Podfile文件,在位于工程目录的终端窗口中
    $ touch Podfile
    

    打开这个文件
    写入

    	platform :ios, '8.0'
    	target ‘MasoryTest’ do
    	pod 'Masonry'
    	end
    
    

    然后在终端输入

    $ pod install
    
    • 然后打开后缀为.xcworkspace文件
    • 引入文件#import <Masonry.h>,编写代码
  • 使用

/// 构建约束
mas_makeConstraints
 
/// 更新约束 - 修改已经建立的约束,如果约束不存在,会在控制台输出错误
mas_updateConstraints
 
/// 会删除已经建立的所有约束,然后重新生成约束
mas_remakeConstraints

相关函数

equalTo(参照对象)                   // 参照属性相同可以省略
equalTo(参照对象.mas_参照属性)       // 参照属性

注意:在设置约束之前,要加入视图之后,例如[self.view addSubview view1];
eg:

	UIView *view = [[UIView alloc] init];
    view.backgroundColor = [UIColor redColor];
    
    [self.view addSubview:view];
    [view mas_makeConstraints:^(MASConstraintMaker *make) {
		//顶部边距
		make.top.equalTo(self.view).offset(20);
	    //左边边距
	    make.left.equalTo(self.view).offset(20);
	    //底部边距
	    make.bottom.equalTo(self.view).offset(-20);
	    //右边边距
	    make.right.equalTo(self.view).offset(-20);
	    //让视图居中,位于屏幕中间
	    make.center.equalTo(self.view);
    }];

更改约束
注意:更改时,只能更新已经建立的约束,如果建立的约束不在,会在控制台输出错误

UIView *view3 = [[UIView alloc] init];
    view3.backgroundColor = [UIColor orangeColor];
    [view addSubview:view3];
    
    [view3 mas_makeConstraints:^(MASConstraintMaker *make) {
        //        make.left.top.equalTo(view2).offset(40);
        make.left.equalTo(view2).offset(40);
        make.top.equalTo(view2.mas_bottom).offset(40);
        make.size.mas_equalTo(CGSizeMake(100, 100));
    }];
    
    UIButton *btn = [[UIButton alloc] init];
    btn.layer.borderWidth = 2;
    btn.layer.borderColor = [UIColor blackColor].CGColor;
    self.viewdemon = view3;
    
    [btn addTarget:self action:@selector(startAnimation) forControlEvents:UIControlEventTouchUpInside];
    [btn setTitle:@"改变" forState:UIControlStateNormal];
    [view addSubview:btn];
    
    [btn mas_makeConstraints:^(MASConstraintMaker *make) {
//        make.bottom.equalTo(view3.mas_bottom).offset(20);
        make.left.equalTo(view2);
        make.top.equalTo(view3.mas_bottom).offset(20);
        make.size.mas_equalTo(view2);
    }];


-(void)startAnimation {
    //更改约束
    [self.viewdemon mas_updateConstraints:^(MASConstraintMaker *make) {
        make.size.mas_equalTo(CGSizeMake(200, 200));
       
    }];
    
    //增加动画效果
    [UIView animateWithDuration:2.0 animations:^{
        [self.view layoutIfNeeded];
    }];

}

重建约束

mas_remakeConstraints  会删除已经建立的所有约束,然后生成新的约束

GitHub地址练习demo

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值