Masonry基本用法

来源:互联网 发布:电脑无法上淘宝视频 编辑:程序博客网 时间:2024/05/21 23:43
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
{
   
    
__weaktypeof(self) weakSelf = self;
   
//使用mas_makeConstraints添加约束
   
   
//登录
   
_loginLabel.textAlignment=NSTextAlignmentCenter;
    [
_loginLabelmas_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;
    [
_accountsLabelmas_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;
    [
_accountsTextmas_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;
    [
_passWordLabelmas_makeConstraints:^(MASConstraintMaker*make) {
       
       
// 添加大小约束(make就是要添加约束的控件view
        make.
size.mas_equalTo(_accountsLabel);
       
        make.
left.equalTo(_accountsLabel);
        make.
top.equalTo(_accountsLabel).mas_equalTo(60);
       
    }];
   
//密码输入
   
_passWordText.textAlignment=NSTextAlignmentCenter;
    [
_passWordTextmas_makeConstraints:^(MASConstraintMaker*make) {
       
       
// 添加大小约束(make就是要添加约束的控件view
        make.
size.mas_equalTo(_accountsText);
       
        make.
right.equalTo(-60);
        make.
top.equalTo(_passWordLabel).mas_equalTo(-5);
       
    }];
   
}

三、参考文章地址:(1)http://www.brighttj.com/ios/ios-masonry-demo.html#comment-353
(2)http://wenku.baidu.com/link?url=chAe5TC0uFab5JjtjrwrMzvdnjtUB5BNdmmIqnKKOv0bvnLtNkgZ6zHd3P2RxHhWBd0s2YNDsxJm1q3Au634-E5vMRgHXajZL1G1BBHtZJS
0 0
原创粉丝点击