美文网首页
好用的布局第三方框架(massonry)

好用的布局第三方框架(massonry)

作者: 修行小怪兽 | 来源:发表于2016-05-06 01:05 被阅读288次

    massonary之block部分运用

    • block作为函数参数
    
    UIView *blueView = UIView.new;
        blueView.backgroundColor = UIColor.blueColor;
        blueView.layer.borderColor = UIColor.blackColor.CGColor;
        blueView.layer.borderWidth = 2;
        [self addSubview:blueView];
        
        UIView *superview = self;
        int padding = 10;
    
    
        [greenView makeConstraints:^(MASConstraintMaker *make) {
            make.top.greaterThanOrEqualTo(superview.top).offset(padding);
            make.left.equalTo(superview.left).offset(padding);
            make.bottom.equalTo(blueView.top).offset(-padding);
            make.right.equalTo(redView.left).offset(-padding);
            make.width.equalTo(redView.width);
    
            make.height.equalTo(redView.height);
            make.height.equalTo(blueView.height);
        }];//大括号包含就是block
    //.h文件
    - (NSArray *)makeConstraints:(void(^)(MASConstraintMaker *make))block;因为变量类型再前面所以变量名移出来为block
    //实现代码
    - (NSArray *)makeConstraints:(void(^)(MASConstraintMaker *))block {
        return [self mas_makeConstraints:block];//这个 大括号包含是函数的实现部分,它的参数是block
    }
    
    //上面文件调用的函数原型
    
    - (NSArray *)mas_makeConstraints:(void(^)(MASConstraintMaker *))block {
        self.translatesAutoresizingMaskIntoConstraints = NO;
        MASConstraintMaker *constraintMaker = [[MASConstraintMaker alloc] initWithView:self];
        block(constraintMaker);//让最外层那个传进去的block,执行这个部分
        return [constraintMaker install];
    }
    

    使用代码实现Autolayout的方法3 - Masonry

    • 使用步骤
      • 添加Masonry文件夹的所有源代码到项目中
      • 添加2个宏、导入主头文件
      // 只要添加了这个宏,就不用带mas_前缀
      #define MAS_SHORTHAND
      

    // 只要添加了这个宏,equalTo就等价于mas_equalTo

    define MAS_SHORTHAND_GLOBALS

    // 这个头文件一定要放在上面两个宏的后面

    import "Masonry.h"

    ```
    
    • 添加约束的方法
    // 这个方法只会添加新的约束
     [view makeConstraints:^(MASConstraintMaker *make) {
    
     }];
    
    // 这个方法会将以前的所有约束删掉,添加新的约束
     [view remakeConstraints:^(MASConstraintMaker *make) {
    
     }];
    
     // 这个方法将会覆盖以前的某些特定的约束
     [view updateConstraints:^(MASConstraintMaker *make) {
    
     }];
    
    • 约束的类型
    1.尺寸:width\height\size
    2.边界:left\leading\right\trailing\top\bottom
    3.中心点:center\centerX\centerY
    4.边界:edges
    

    相关文章

      网友评论

          本文标题:好用的布局第三方框架(massonry)

          本文链接:https://www.haomeiwen.com/subject/nybdrttx.html