AutoLayout +Masonary
1,
Masonry介绍与使用实践(快速上手Autolayout)
http://adad184.com/2014/09/28/use-masonry-to-quick-solve-autolayout/
Xcode6中自动布局autolayout和sizeclass的使用
http://www.cocoachina.com/ios/20140915/9623.html
2,
iOS Auto Layout
iOS 开发实践之 Auto Layout
http://xuexuefeng.com/autolayout/
http://blog.csdn.net/ysy441088327/article/details/12558097
3, TableView + Masonry
https://github.com/Aevit/SCAutoResizeCellDemo
4,ImageView 圆角 +Masonry
https://github.com/SnapKit/Masonry/issues/153
5,
IOS自适应前段库-Masonry的使用
http://www.cocoachina.com/ios/20150701/12217.html
****************************************************************
1,在Masonry中能够添加autolayout约束有三个函数
- (NSArray *)mas_makeConstraints:(void(^)(MASConstraintMaker *make))block; - (NSArray *)mas_updateConstraints:(void(^)(MASConstraintMaker *make))block; - (NSArray *)mas_remakeConstraints:(void(^)(MASConstraintMaker *make))block; /* mas_makeConstraints 只负责新增约束 Autolayout不能同时存在两条针对于同一对象的约束 否则会报错 mas_updateConstraints 针对上面的情况 会更新在block中出现的约束 不会导致出现两个相同约束的情况 mas_remakeConstraints 则会清除之前的所有约束 仅保留最新的约束 三种函数善加利用 就可以应对各种情况了 */
2,在做autoLayout之前 一定要先将view添加到superview上 否则会报错
使用 mas_makeConstraints方法的元素必须事先添加到父元素的中,例如[self.view addSubview:view];
3,
[sv1 mas_makeConstraints:^(MASConstraintMaker *make) { make.edges.equalTo(sv).with.insets(UIEdgeInsetsMake(10, 10, 10, 10)); /* 等价于 make.top.equalTo(sv).with.offset(10); make.left.equalTo(sv).with.offset(10); make.bottom.equalTo(sv).with.offset(-10); make.right.equalTo(sv).with.offset(-10); */ /* 也等价于 make.top.left.bottom.and.right.equalTo(sv).with.insets(UIEdgeInsetsMake(10, 10, 10, 10)); */ }];
那么为什么bottom和right里的offset是负数呢? 因为这里计算的是绝对的数值 计算的bottom需要<sv的底部高度 所以要-10 同理用于right
4, masequalTo 和 equalTo 区别:
masequalTo 比equalTo多了类型转换操作,一般来说,大多数时候两个方法都是 通用的,但是对于数值元素使用mas_equalTo。对于对象或是多个属性的处理,使用equalTo。特别是多个属性时,必须使用equalTo,例如 make.left.and.right.equalTo(self.view);