Masonry 简易教程(没了解过的可以直接闪人了,主要是为了了解所有的API)
来源:互联网 发布:淘宝卖家借贷平台 编辑:程序博客网 时间:2024/05/22 12:52
貌似又好久没有上博客了,近期在做IOS开发,原来开发过一个项目用的都是xib、或故事版,然而在开发复杂的页面真的显得心有余而力不足,然后在一些页面采用了代码布局,最坑爹的一开始使用的是frame布局,又错点把自己坑死,后来使用了约束布局,纯原生的那种。又错点奔溃了。近期闲下来了,网上搜索一番,发现Masonry 还是比较火的,故学习了一番,果然很流弊,虽然API没有多少,苦恼自己从学了IT记性越来越差劲了,但是每次找资料,都是长篇大论的入门级教程,顾现在把所有的API都罗列出来,并且简单备注,主要是帮助自己和了解过Masonry 的朋友,快速查找和使用,当然英语大牛除外,因为源码都有注释,直接看就行。哈哈
//无非就是增删改 ,不错就是这三个block
//这个方法只会添加新的约束
[view mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.equalTo(superview.top).offset(padding);
}];
//这个方法会将以前的约束全部删除,添加新的约束
[view mas_remakeConstraints:^(MASConstraintMaker *make) {
}];
//这个方法将会覆盖以前的某些特定的约束
[view mas_updateConstraints:^(MASConstraintMaker *make) {
}];
1、Basic Attribute: 基本属性,支持到iOS6,一般使用得比较多
@property (nonatomic, strong, readonly) MASConstraint *left;
@property (nonatomic, strong, readonly) MASConstraint *top;
@property (nonatomic, strong, readonly) MASConstraint *right;
@property (nonatomic, strong, readonly) MASConstraint *bottom;
@property (nonatomic, strong, readonly) MASConstraint *leading;
//尾部其中leading与left trailing与right 在正常情况下是等价的 但是当一些布局是从右至左时(比如阿拉伯文?没有类似的经验) 则会对调 换句话说就是基本可以不理不用 用left和right就好了
@property (nonatomic, strong, readonly) MASConstraint *trailing;
@property (nonatomic, strong, readonly) MASConstraint *width;
@property (nonatomic, strong, readonly) MASConstraint *height;
//横向基线 比如
make.centerX.equalTo(self.view); 就是self.view的横向中间了。
@property (nonatomic, strong, readonly) MASConstraint *centerX;
//纵向基线
@property (nonatomic, strong, readonly) MASConstraint *centerY;
@property (nonatomic, strong, readonly) MASConstraint *baseline;
//margin系列
@property (nonatomic,strong,readonly)MASViewAttribute *leftMargin;
@property (nonatomic,strong,readonly)MASViewAttribute *rightMargin;
@property (nonatomic,strong,readonly)MASViewAttribute *topMargin;
@property (nonatomic,strong,readonly)MASViewAttribute *bottomMargin;
@property (nonatomic,strong,readonly)MASViewAttribute *leadingMargin;
@property (nonatomic,strong,readonly)MASViewAttribute *trailingMargin;
@property (nonatomic,strong,readonly)MASViewAttribute *centerXWithinMargins;
@property (nonatomic,strong,readonly)MASViewAttribute *centerYWithinMargins;
3、Convenient Attribute: 便捷属性,为了使用方便而特意新增的属性。Autolayout本身没有对应的相关属性
//Convenient Attributemake.edges.insets(edge);//Basic Attributemake.left.right.top.bottom.insets(edge);
Relationship
约束表示的是2个item之间的关系,在Autolayout中一共定义了3种关系:=, >=, <=,对应到Masonry中:
- (MASConstraint * (^)(id attr))equalTo;- (MASConstraint * (^)(id attr))greaterThanOrEqualTo;- (MASConstraint * (^)(id attr))lessThanOrEqualTo;
作者:小笨狼
链接:http://www.jianshu.com/p/1841e6c69611
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
- Masonry 简易教程(没了解过的可以直接闪人了,主要是为了了解所有的API)
- 今天不忙,看了下DOM,无聊写写记记(详细的是笔者之前没主要的,不详细和缺少的是了解的)
- 了解主要的搜索引擎
- Android那些你可能没了解过的---碎片化
- 你从来没了解过的CSS浮动
- 你从来没了解过的CSS浮动
- UIView的 所有属性了全面了解
- 一篇可以快速了解 极光推送 服务器api 的文章
- hdoj-1072 --Nightmar||我仿照hdoj-1044的差不多的思路写的(DFS+BFS, 主要是看到了路可以来回走, 可能是数据比较弱, 0ms过了,看到网上好多都是BFS就直接过了)
- 新站seo优化的核心步骤你没了解过
- 是时候来了解android7了:通知直接回复
- 是时候来了解android7了:通知直接回复
- 是时候来了解android7了:通知直接回复
- IOS私有API的了解
- IOS私有API的了解
- IOS私有API的了解
- IOS私有API的了解
- iOS私有API的了解
- Native
- AB1601的AD转换注意事项
- StartSSL 免费证书申请步骤以及Tomcat和Apache下的安装
- maven加载不到配置文件
- JQuery插件(二)之Accordion
- Masonry 简易教程(没了解过的可以直接闪人了,主要是为了了解所有的API)
- 31. Next Permutation
- 2018网易内推笔试编程题(一)
- SecureCRT常用命令
- MUI使区域滚动的滚动条消失的办法
- python sys.argv[]用法
- 《利用python进行数据分析》学习笔记(二)4.3 通用函数 4.4 利用数组进行数据处理
- CentOS7 MIN 安装 Redis
- CentOS6.9用rpm安装MySQL5.7