美文网首页
仿Masonry的一个库

仿Masonry的一个库

作者: 金约21依代 | 来源:发表于2017-12-12 01:39 被阅读0次

    研究了下Masonry的代码,发现这个库写的非常巧妙,其很好的通过Block封装了一个链式调用系统。

    我这里写了一个类似于Masonry的库,CXLayout,详见GitHub,喜欢的朋友可以看一看。

    使用方法

    Step 1:添加控件
    #import "CXLayout.h"
    
    UIView *greenView = UIView.new;
    
    greenView.backgroundColor = [UIColor greenColor];
    
    [self.view addSubview:greenView];
    
    Step 2:添加约束
    [greenView CX_AutoLayout:^(CXLayoutManager *mgr) {
         mgr.Equal_width(nil,CX_Default,200).height(CX__Default,44).center(CGPointMake(0, - ScreenHeight/2 + 80));
    }];
    
    Step 3:更新约束
    [greenView CX_AutoLayoutUpdate:^(CXLayoutManager *mgr) {
         mgr.equal.size(CGSizeMake(150, 150));
    }];
    

    添加约束的时候,mgr后面跟的约束代码无需顺序,你也可以写成:
    mgr.equal.width(nil,1,200).height(nil,1,44).center(CGPointMake(0, - ScreenHeight/2 + 80));
    或者分成多行写成:
    mgr.equal.width(nil,1,200);
    mgr.equal.height(nil,1,44);
    mgr.equal.center(CGPointMake(0, - ScreenHeight/2 + 80));

    其实这个库只是仿Masonry的一个简单实现,想研究Masonry源码的可以看看。

    相关文章

      网友评论

          本文标题:仿Masonry的一个库

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