IOS开发-Masonry
来源:互联网 发布:网络分销管理软件 编辑:程序博客网 时间:2024/05/29 03:55
Masonry是一个封装苹果Autolayout的一个第三方框架。简化了代码添加约束的代码量等。
下载地址:
https://github.com/SnapKit/Masonry
下载完后解压缩,把Masonry这个文件夹拖进项目里就可以了。
下面是一个小小的实例:
先导入头文件:
#import "Masonry/Masonry.h"
UIView *buleView = [[UIView alloc]init]; [buleView setBackgroundColor:[UIColor blueColor]]; [self.view addSubview:buleView]; [buleView mas_makeConstraints:^(MASConstraintMaker *make) { //大小 make.size.mas_equalTo(CGSizeMake(50, 50)); //位置:居中 make.center.mas_equalTo(self.view); }];
运行一下,在屏幕中央就有一个50*50的蓝色小方块了。
Masonry里面几个约束的方法:
[buleView mas_makeConstraints:^(MASConstraintMaker *make) { //添加新约束 }]; [buleView mas_remakeConstraints:^(MASConstraintMaker *make) { //会把以前的约束删除掉,添加新的约束 }]; [buleView mas_updateConstraints:^(MASConstraintMaker *make) { //更新以前的约束 }];
引用Masonry文档的一个例子:
效果是一个view距离父控件上下左右都有10的边距。官方列举了两种写法,第二种直接一句话就能实现效果。
第一种:
UIEdgeInsets padding = UIEdgeInsetsMake(10, 10, 10, 10);[view1 mas_makeConstraints:^(MASConstraintMaker *make) { make.top.equalTo(superview.mas_top).with.offset(padding.top); //with is an optional semantic filler make.left.equalTo(superview.mas_left).with.offset(padding.left); make.bottom.equalTo(superview.mas_bottom).with.offset(-padding.bottom); make.right.equalTo(superview.mas_right).with.offset(-padding.right);}];
第二种:
[view1 mas_makeConstraints:^(MASConstraintMaker *make) { make.edges.equalTo(superview).with.insets(padding);}];
到这里我们会碰到很多mas_前缀和没有这个前缀的东西,他们两个的区别就是带mas_前缀的是有对参数进行封装的,例如:
mas_equalTo(100)
equalTo(@100)
没有mas_前缀的就需要转类型,反之则不用。
如果要使这两个的效果等同,那么Masonry提供了两个宏给我们使用,但是需要注意的是,定义这个宏的时候,要在导入Masonry头文件之前,例如:
//define this constant if you want to enable auto-boxing for default syntax#define MAS_SHORTHAND_GLOBALS//define this constant if you want to use Masonry without the 'mas_' prefix#define MAS_SHORTHAND#import "Masonry/Masonry.h"
这样就可以了。
0 0
- iOS开发 - Masonry
- IOS开发-Masonry
- iOS开发 masonry 设置tableHeadView
- iOS开发 自定义UICollectionViewLayout实现Masonry Layout
- iOS开发之Masonry使用详解
- iOS开发之Masonry(一)
- iOS开发之Masonry(二)
- iOS开发之Masonry(三)
- iOS开发之Masonry(四)
- iOS开发之Masonry(五)
- iOS开发之Masonry(六)
- iOS开发——Masonry 自动布局
- iOS开发第三方介绍之一Masonry
- ios开发中masonry的使用心得
- ios开发autolayout之Masonry使用总结
- iOS开发masonry动态布局cell高度
- iOS开发 ☞ Masonry的那些坑
- iOS开发- Masonry约束第三方详解
- PHP 中的设计模式详解
- 网络请求 多次请求
- 只为菜鸟 cocos2dx-lua 实现Scrollview (vs2013)
- Android 自定义控件WheelView
- POS协议解析
- IOS开发-Masonry
- 1007 ProblemG
- Android 自定义RecyclerView 实现真正的Gallery效果
- TYD-sublime 快捷键
- 根据wsdl生成客户端Bean的两种方式
- 四种XML解析方式详解
- 使用sklearn做特征工程
- Git的学习与常用操作
- Android Studio 快捷键