Masonry学习之基本布局
来源:互联网 发布:c语言ide 编辑:程序博客网 时间:2024/06/16 13:48
何谓基本布局?个人以为即确定的一个或几个视图,设置固定的约束,约束不会发生更新和变化。
此处一例,来自Masonry官方例子,如下图所示:
如果使用苹果原生的纯代码相对布局来添加约束,需要添加15条约束,约束的逻辑并不复杂,无非上下左右、等宽和等高,但是代码却十分繁琐,多达100多行。有兴趣可以自己写写看,尤其初学的话,最好动动手。
那我们使用Masonry实现同样的约束布局又是怎样的呢?看代码:
[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); }]; //with is semantic and option [redView mas_makeConstraints:^(MASConstraintMaker *make) { make.top.equalTo(superview.mas_top).with.offset(padding); //with with make.left.equalTo(greenView.mas_right).offset(padding); //without with make.bottom.equalTo(blueView.mas_top).offset(-padding); make.right.equalTo(superview.mas_right).offset(-padding); make.width.equalTo(greenView.mas_width); make.height.equalTo(@[greenView, blueView]); //can pass array of views }]; [blueView mas_makeConstraints:^(MASConstraintMaker *make) { make.top.equalTo(greenView.mas_bottom).offset(padding); make.left.equalTo(superview.mas_left).offset(padding); make.bottom.equalTo(superview.mas_bottom).offset(-padding); make.right.equalTo(superview.mas_right).offset(-padding); make.height.equalTo(@[greenView.mas_height, redView.mas_height]); //can pass array of attributes }];
官方示例代码原封不动,三十多行。更值得关注的是其近乎自然语言的可读性:
make.top.greaterThanOrEqualTo(superview.top).offset(padding);
这句代码翻译过来就是:make这个约束的top大于或等于superview的top,偏移padding距离。太直白了。
阅读全文
0 0
- Masonry学习之基本布局
- Masonry学习之基本动画
- iOS 自动布局框架学习之Masonry
- Masonry学习之布局边距
- 自动布局之masonry
- 自动布局之Masonry
- 相对布局 Masonry 基本使用
- Masonry自动布局详解一:基本用法
- Masonry自动布局详解一:基本用法
- Masonry学习之UILabel
- Masonry学习之UIScrollView
- Masonry学习之Array
- ios 关于自动布局Masonry学习小结
- Masonry自动布局学习博客网址
- iOS学习笔记36-Masonry自动布局
- iOS学习笔记36-Masonry自动布局
- iOS学习笔记 Masonry自动布局
- iOS自适应布局之Masonry(一)
- HBase各版本对Hadoop版本的支持情况
- 父进程产生一系列子进程,每个子进程打印自己的PID然后退出。要求父进程最后打印PID。
- myeclipse2016破解过程
- 【计算机算法分析】贪心算法——活动安排问题
- 线段树详解
- Masonry学习之基本布局
- 4.消费者(Feign)
- iptables防火墙策略
- 处理【由于 Web 服务器上的“ISAPI 和 CGI 限制”列表设置,无法提供您请求的页面】
- SSH之hibernate(二)
- tcp/ip学习笔记--第26章 telnet and Rlogin:Remote Login
- VS2013 如何创建应用程序图标
- cocos2DX-lua 点击事件封装
- 子进程会继承父进程用户id,用户组id,用户信息,文件描述符,数据段,堆栈,当前工作目录,创建文件权限,信号处理方式,进程组号,会话期号。