• Masonry详解


    - (void)viewDidLoad {
    
        [super viewDidLoad];
    
     
    
        //1.view1 居中显示
    
        
    
        UIView *view1 = [[UIView alloc]init];
    
        view1.backgroundColor = [UIColor redColor];
    
        [self.view addSubview:view1];
    
        [view1 mas_makeConstraints:^(MASConstraintMaker *make) {
    
            
    
            make.center.equalTo(self.view);  //居中
    
            make.size.mas_equalTo(CGSizeMake(300, 300));  //设置宽高
    
            //make.size.equalTo(@100);    //设置size
    
            //make.size.mas_equalTo(@100);
    
    
    
        }];
    
        
    
        
    
        //2.view2  在view1的正中间
    
        UIView *view2 = [UIView new];
    
        view2.backgroundColor = [UIColor blackColor];
    
        [view1 addSubview:view2];
    
        [view2 mas_makeConstraints:^(MASConstraintMaker *make) {
    
            
    
           // make.top.left.bottom.and.right.equalTo(view1).with.insets(UIEdgeInsetsMake(10, 10, 10, 10));
    
    
    
    等价于:
    
    //         make.top.equalTo(view1).with.offset(10);
    
    //         make.left.equalTo(view1).with.offset(10);
    
    //         make.bottom.equalTo(view1).with.offset(-10);
    
    //         make.right.equalTo(view1).with.offset(-10);
    
    //
    
    
    
    也等价于:
    
    
    
            //设置四边缩进20
    
            make.edges.equalTo(view1).with.insets(UIEdgeInsetsMake(20, 20, 20, 20));
    
    //        make.size.width.equalTo(@200);
    
    //        make.size.height.equalTo(@200);
    
    //        
    
            
    
        }];
    
        
    
    注意点:
    
    
    
        /*
    
         mas_makeConstraints 只负责新增约束 Autolayout不能同时存在两条针对于同一对象的约束 否则会报错
    
         mas_updateConstraints 针对上面的情况 会更新在block中出现的约束 不会导致出现两个相同约束的情况
    
         mas_remakeConstraints 则会清除之前的所有约束 仅保留最新的约束
    
         
    
         
    
        [view1 mas_makeConstraints:^(MASConstraintMaker *make) {
    
            
    
        }];
    
        
    
        [view1 mas_remakeConstraints:^(MASConstraintMaker *make) {
    
            
    
        }];
    
        [view1 mas_updateConstraints:^(MASConstraintMaker *make) {
    
            
    
            
    
        }];
    
         
    
         */
    
        
    
    
    
        //3.view3与view1 在同一列
    
        UIView *view3 = [UIView new];
    
        view3.backgroundColor = [UIColor greenColor];
    
        [self.view addSubview:view3];
    
        [view3 mas_makeConstraints:^(MASConstraintMaker *make) {
    
            
    
            make.size.mas_equalTo(CGSizeMake(100, 100));
    
            make.centerX.equalTo(view1);   //设置水平居中
    
            make.top.equalTo(view1.mas_bottom).with.offset(20);  //与上view的垂直间隔
    
            
    
            
    
        }];
    
     
    
        
    
     
    
    }
    
     
    
  • 相关阅读:
    model.object对象查询过滤、增删改、Q
    模板中的标签、过滤器
    模板(template)包含与继承
    url用法
    AD用户登录验证,遍历OU(LDAP)
    Python下操作sqlite3
    多线程应用-类(thread)
    数组(list)分组、分段
    多线程应用-函数方式(thread)
    IntelliJ IDEA maven项目 ***
  • 原文地址:https://www.cnblogs.com/pengsi/p/5288103.html
Copyright © 2020-2023  润新知