仿Masonry的一个库


研究了下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源码的可以看看。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容