Masonry学习之复合edges
来源:互联网 发布:开票软件异常000013 编辑:程序博客网 时间:2024/06/14 02:01
先看结果:
再看代码:
- (id)init { self = [super init]; if (!self) return nil; UIView *lastView = self; for (int i = 0; i < 10; i++) { UIView *view = UIView.new; view.backgroundColor = [self randomColor]; view.layer.borderColor = UIColor.blackColor.CGColor; view.layer.borderWidth = 2; [self addSubview:view]; [view mas_makeConstraints:^(MASConstraintMaker *make) { make.edges.equalTo(lastView).insets(UIEdgeInsetsMake(5, 10, 15, 20)); }]; lastView = view; } return self;}
- (UIColor *)randomColor { CGFloat hue = ( arc4random() % 256 / 256.0 ); // 0.0 to 1.0 CGFloat saturation = ( arc4random() % 128 / 256.0 ) + 0.5; // 0.5 to 1.0, away from white CGFloat brightness = ( arc4random() % 128 / 256.0 ) + 0.5; // 0.5 to 1.0, away from black return [UIColor colorWithHue:hue saturation:saturation brightness:brightness alpha:1];}
至于循环10次来添加约束这个逻辑很容易理解,我关注的是edges这个复合数据结构。可以想象一下,我就布局一个简单的视图在父视图上,要确定其上下左右,可以使用基本布局中的方式:
make.top.equalTo(superview.top).offset(10);make.left.equalTo(superview.left).offset(10);make.bottom.equalTo(superview.bottom).offset(-10);make.right.equalTo(superview.right).offset(-10);
也可以使用常量:
make.top.equalTo(@10);make.left.equalTo(@10);make.bottom.equalTo(@-10);make.right.equalTo(@-10);
也可以使用edges:
make.edges.equalTo(superview).insets(UIEdgeInsetsMake(10, 10, 10, 10));
你想用哪个?
阅读全文
0 0
- Masonry学习之复合edges
- Masonry学习之UILabel
- Masonry学习之UIScrollView
- Masonry学习之Array
- Masonry学习之基本布局
- Masonry学习之更新约束
- Masonry学习之使用常量
- Masonry学习之aspect fit
- Masonry学习之基本动画
- Masonry学习之链式属性
- Masonry学习之Distribute View
- Masonry学习之Layout Guides
- iOS 自动布局框架学习之Masonry
- iOS学习之Masonry第三方约束
- Masonry学习之设置新的约束
- Masonry学习之布局边距
- Masonry学习
- Masonry学习
- ifconig 网络通过接口侦听局域网内的主机
- Cookie与Session基本知识了解
- 步进电机失步(丢步)的原因和对策
- Slim研读笔记四之Composer(下)
- jquery 返回顶部(插件)
- Masonry学习之复合edges
- 验证代码
- 步进电机和伺服电机的区别
- Mac下的JAVA开发环境搭建
- 日常运维-5
- Android项目实践——短信发送接口的封装与设计
- 嗨,2017/12/05,日记开始
- 多个线程之间共享数据
- MAVEN工程创建