Masonry的简单使用

Masonry

实例化 redView 和 blueView

//实例化一个view

    UIView *redView = [[UIView alloc]init];
    
    redView.backgroundColor = [UIColor redColor];
    
    [self.view addSubview:redView];
    
    UIView *blueView = [[UIView alloc]init];
    
    blueView.backgroundColor = [UIColor blueColor];
    
    [self.view addSubview:blueView];

//masonry自动帮我们把autoresizing给禁用掉

设置 redView 和 blueView 的约束

//  设置redView的约束
    
    [redView mas_makeConstraints:^(MASConstraintMaker *make) {
    
        // make.top.left.offset(20);
        
        // 针对topLayoutGuide进行设置
        
        // self.mas_bottomLayoutGuide 设置底部
        
        // self.mas_topLayoutGuideBottom 设置顶部
        
        make.top.equalTo(self.mas_topLayoutGuideBottom);
        
        make.left.offset(20);
        
        make.right.offset(20);
        
        make.height.equalTo(@40);
        
    }];
    
    //  设置blueView的约束
    
    /*
     
     dividedBy: 除以
     
     multipledBy:乘以
     
     */
    
    [blueView mas_makeConstraints:^(MASConstraintMaker *make) {
       
        make.top.equalTo(redView.mas_bottom).offset(20);
        
        make.right.offset(-20);
        
        make.height.equalTo(redView);
        
        //  宽度
        
        //  make.width.equalTo(redView).multipliedBy(0.5);
        
        make.width.equalTo(redView).dividedBy(2);
        
    }];

更新约束

 //  更新约束
    
    [redView mas_updateConstraints:^(MASConstraintMaker *make) {
        
        //  更新redView的约束高度变为80
        
        make.height.equalTo(@80);
        
    }];

重新设置约束

//  重新设置,会把之前的约束给清空掉,然后使用新的约束
    [redView mas_remakeConstraints:^(MASConstraintMaker *make) {
       
        make.top.left.offset(20);
        
        make.right.offset(-20);
        
        make.height.equalTo(@80);
        
    }];

设置约束的优先级

//  设置约束的优先级
    [redView mas_makeConstraints:^(MASConstraintMaker *make) {
        
        make.top.left.offset(20);
        
        make.right.offset(-20);
        
        make.height.equalTo(@40).priority(10);
        
    }];
    
    /*
     
     priority: 可以设置任意的优先级,接受的参数是0-1000的数字
     priorityLow: 设置低优先级,优先级为250
     priorityMedium: 设置中优先级,优先级为500
     priorityHigh: 设置高优先级,优先级为750
     
     需要注意的是,使用priorityLow、priorityMedium、priorityHigh的时候。不是.priorityHigh,而是.priorityHigh()
     
     */
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容