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的垂直间隔
    
            
    
            
    
        }];
    
     
    
        
    
     
    
    }
    
     
    
  • 相关阅读:
    梯度下降_机器学习-李宏毅
    LeTex算法伪代码环境
    数据结构之线性表
    Java中的初始化块、构造器、静态初始化块的执行顺序
    Java中的内省(introspector)
    JSP (Java Server Page)
    eclipse的web工程默认部署到了哪里
    Persistence机制(永久保存/序列化Serialize)
    VC++中使用正则表达式RegExp
    Java中解析和生成xml
  • 原文地址:https://www.cnblogs.com/pengsi/p/5288103.html
Copyright © 2011-2022 走看看