Masonry基本用法

Masonry用法上也比较简单灵活,很大程度上替代了传统的NSLayoutConstraint布局方式,是目前最流行的AutoLayout框架.

一、Masonry基本知识:

1.Masonry 会自动调用 view.translatesAutoresizingMaskIntoConstraints=NO;
    
2.属性  left/right/top/bottom/size/height/width/CenterY 等对齐属性不能设置固定值,但可以设置和superview的相对值
    
3.三种尺寸关系:
   equalTo =  NSLayoutRelationEqual
    lessThanOrEqualTo  = NSLayoutRelationLessThanOrEqual//小于等于
    greaterThanOrEqualTo =  NSLayoutRelationGreaterThanOrEqual//大于等于
    
4.使用makeConstraintsupdateConstraintsremakeConstraints
    
     -(NSArray *)mas_makeConstraints:(void(^)(MASConstraintMaker *make))block;
    
     -(NSArray*)mas_updateConstraints:(void(^)(MASConstraintMaker *make))block ;
    
     -(NSArray*)mas_remakeConstraints:(void(^)(MASConstraintMaker *make))block ;

mas_makeConstraints只负责新增约束 Autolayout不能同时存在两条针对于同一对象的约束否则会报错  mas_updateConstraints针对上面的情况会更新在block中出现的约束不会导致出现两个相同约束的情况  mas_remakeConstraints 则会清除之前的所有约束仅保留最新的约束。


二、代码事例:简单的登录界面:
-( void )setLoginPage
{
   
    
__weak typeof ( self ) weakSelf = self ;
   
// 使用 mas_makeConstraints 添加约束
   
   
// 登录
   
_loginLabel . textAlignment = NSTextAlignmentCenter ;
    [
_loginLabel mas_makeConstraints :^( MASConstraintMaker *make) {
   
       
// 添加大小约束( make 就是要添加约束的控件 view
        make.
size . mas_equalTo (CGSizeMake( 100 , 20 ));
       
        make.
left . equalTo ((weakSelf.view.bounds.size.width- 100 )/ 2 );
        make.
right . equalTo (-((weakSelf.view.bounds.size.width- 100 )/ 2 ));
        make.
top . equalTo ( 60 );
       
    }];
   
// 帐号
   
_accountsLabel . textAlignment = NSTextAlignmentCenter ;
    [
_accountsLabel mas_makeConstraints :^( MASConstraintMaker *make) {
       
       
// 添加大小约束( make 就是要添加约束的控件 view
        make.
size . mas_equalTo (CGSizeMake( 60 , 20 ));
       
        make.
left . equalTo ( 60 );
        make.
top . equalTo (_loginLabel). mas_equalTo ( 80 );
       
    }];
   
   
// 帐号输入
   
_accountsText . textAlignment = NSTextAlignmentCenter ;
    [
_accountsText mas_makeConstraints :^( MASConstraintMaker *make) {
       
       
// 添加大小约束( make 就是要添加约束的控件 view
        make.
size . mas_equalTo (CGSizeMake( 120 , 30 ));
      
        make.
right . equalTo (- 60 );
        make.
top . equalTo (_accountsLabel). mas_equalTo (- 5 );
       
    }];
   
   
// 密码
   
_passWordLabel . textAlignment = NSTextAlignmentCenter ;
    [
_passWordLabel mas_makeConstraints :^( MASConstraintMaker *make) {
       
       
// 添加大小约束( make 就是要添加约束的控件 view
        make.
size . mas_equalTo (_accountsLabel);
       
        make.
left . equalTo (_accountsLabel);
        make.
top . equalTo (_accountsLabel). mas_equalTo ( 60 );
       
    }];
   
// 密码输入
   
_passWordText . textAlignment = NSTextAlignmentCenter ;
    [
_passWordText mas_makeConstraints :^( MASConstraintMaker *make) {
       
       
// 添加大小约束( make 就是要添加约束的控件 view
        make.
size . mas_equalTo (_accountsText);
       
        make.
right . equalTo (- 60 );
        make.
top . equalTo (_passWordLabel). mas_equalTo (- 5 );
       
    }];
   
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值