博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用第三方框架 Masonry 实现自动布局
阅读量:4569 次
发布时间:2019-06-08

本文共 1886 字,大约阅读时间需要 6 分钟。

由于前两天都在学习自动布局的使用,但是又觉得苹果原生的方式太过于麻烦,而且也不易于理解,昨天听人说了有个第三方框架也可以实现自动布局的功能,然后在https://github.com/上找到了Mansonry这个框架,使用起来真的减少了很多时间,而且代码直观,更加容易理解。

送上源码地址:

以上说明了与参照控件的关系中三种条件的对应替代方法。

 

以上说明了上下左右等属性的对应替代属性。

 

一些设置约束的方法,更多内容请参考网站说明。

1 //设置约束2 - (NSArray *)mas_makeConstraints:(void(^)(MASConstraintMaker *))block;3 4 //如果之前已经有约束,则更新新的约束,如果没有约束,则添加约束5 - (NSArray *)mas_updateConstraints:(void(^)(MASConstraintMaker *))block;6 7 //将之前的约束全部删除,添加新的约束8 - (NSArray *)mas_remakeConstraints:(void(^)(MASConstraintMaker *make))block;

以下为代码使用实现布局效果:

1     //添加两个控件 2     UIView *blueView = [[UIView alloc] init]; 3     blueView.backgroundColor = [UIColor blueColor]; 4     blueView.translatesAutoresizingMaskIntoConstraints = NO; 5     [self.view addSubview:blueView]; 6      7     UIView *redView = [[UIView alloc] init]; 8     redView.backgroundColor = [UIColor redColor]; 9     redView.translatesAutoresizingMaskIntoConstraints = NO;10     [self.view addSubview:redView];11 12     //给蓝色View设置约束13     [blueView mas_makeConstraints:^(MASConstraintMaker *make) {14         make.left.equalTo(self.view.mas_left).offset(30);//和父view的左边间距为30;15         make.bottom.equalTo(self.view.mas_bottom).offset(-30);//和父view的底部间距为30;16         make.right.equalTo(redView.mas_left).offset(-30);//和红色view的间距为30;17         make.height.mas_equalTo(50);//蓝色view的高度为5018     }];19     20     //给红色View设置约束21     [redView mas_makeConstraints:^(MASConstraintMaker *make) {22         make.right.equalTo(self.view.mas_right).offset(-30);//和父view的右边间距为30;23         make.bottom.equalTo(blueView.mas_bottom);//和蓝色view的底部对齐24         make.height.equalTo(blueView.mas_height);//和蓝色view的高度相等25         make.width.equalTo(blueView.mas_width);//和蓝色view的宽度相等26     }];

 

效果图如下:

用了这个框架之后,再对比之前使用代码布局的效果,感觉就是一个天一个地啊,而且在某些地方使用block感觉比使用delegate更加实用和简捷方便,看来以后还是要多逛逛https://github.com/还是会得到很多收获的。

转载于:https://www.cnblogs.com/xiaomoge/p/4283111.html

你可能感兴趣的文章
队列的循环队列
查看>>
程序中的日期格式
查看>>
大众点评CAT错误总结以及解决思路
查看>>
从0开始学爬虫3之xpath的介绍和使用
查看>>
Shell成长之路
查看>>
vim下正则表达式的非贪婪匹配
查看>>
一个python的计算熵(entropy)的函数
查看>>
spring源码学习——spring整体架构和设计理念
查看>>
模拟window系统的“回收站”
查看>>
报文格式【定长报文】
查看>>
RDLC报表钻取空白页问题
查看>>
多路电梯调度的思想
查看>>
jQuery-对Select的操作
查看>>
过滤器、监听器、拦截器的区别
查看>>
为什么要进行需求分析?通常对软件系统有哪些需求?
查看>>
一些模板
查看>>
jquery和dom元素相互转换
查看>>
放大的X--HDOJ-201307292012
查看>>
题目831-签到-nyoj-20140818
查看>>
百词斩-斩家秘籍
查看>>