zoukankan      html  css  js  c++  java
  • 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的垂直间隔
    
            
    
            
    
        }];
    
     
    
        
    
     
    
    }
    
     
    
  • 相关阅读:
    懒加载数据,在取出数据时容易出的bug....
    小程序申请及小程序发布
    SSL证书申请及安装
    iview modal 覆盖问题
    取消div独占一行的特性
    GPS坐标互转:WGS-84(GPS)、GCJ-02(Google地图)、BD-09(百度地图)、(百度坐标转谷歌坐标)
    工厂方法模式
    STS创建SpringBoot项目
    snmp协议学习记录
    操作系统命令学习记录
  • 原文地址:https://www.cnblogs.com/pengsi/p/5288103.html
Copyright © 2011-2022 走看看