以编码的方式实现Auto Layout自动布局(二)
来源:互联网 发布:java购物车实现原理 编辑:程序博客网 时间:2024/05/21 11:00
转自:http://blog.csdn.net/dongbaojun_ios/article/details/12624393
在上一篇文章iOS学习笔记02——以编码的方式实现Auto Layout自动布局(一)中我们简单的介绍了使用Visual Format Language创建布局约束来实现自动布局,这种方法创建的布局约束能够满足大部分的布局的需求。但是想要实现类似于这样的约束:button.width = 2 * button.height就不能满足要求了,这一篇我们我们简单介绍一下如何创建这样的布局约束。
Apple就是非常贴心,它为我们提供了另外一个方法创建类似于view1.attr1 = view2.attr2 * multiplier + constant这样的约束,方法如下:
- +(id)constraintWithItem:(id)view1 attribute:(NSLayoutAttribute)attr1 relatedBy:(NSLayoutRelation)relation toItem:(id)view2 attribute:(NSLayoutAttribute)attr2 multiplier:(CGFloat)multiplier constant:(CGFloat)c;
下面我们用这种方法创建一个布局约束,实现一个按钮button的布局,button距离父视图的左侧60点,距离顶部30点,其中宽度W = 2 * H + 10。效果图如下
不多说,上代码
- - (void)viewDidLoad
- {
- [super viewDidLoad];
- // Do any additional setup after loading the view.
- self.edgesForExtendedLayout = UIRectEdgeNone;
- UIButton * button = [UIButton buttonWithType:UIButtonTypeSystem];
- button.layer.borderColor = [UIColor blackColor].CGColor;
- button.layer.borderWidth = 2.0;
- [button setTitle:@"W=2*H" forState:UIControlStateNormal];
- [self.view addSubview:button];
- [button setTranslatesAutoresizingMaskIntoConstraints:NO];
- NSMutableArray * tempConstraints = [NSMutableArray array];
- [tempConstraints addObjectsFromArray:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-60-[button]" options:0 metrics:nil views:NSDictionaryOfVariableBindings(button)]];
- [tempConstraints addObjectsFromArray:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-30-[button(==30)]" options:0 metrics:nil views:NSDictionaryOfVariableBindings(button)]];
- [self.view addConstraints:tempConstraints];
- [self.view addConstraint:[NSLayoutConstraint constraintWithItem:button attribute:NSLayoutAttributeWidth relatedBy:NSLayoutRelationEqual toItem:button attribute:NSLayoutAttributeHeight multiplier:2.0 constant:10.0]];
- }
里面介绍很清楚!
0 0
- 以编码的方式实现Auto Layout自动布局(二)
- 以编码的方式实现Auto Layout自动布局(二)
- 以编码的方式实现Auto Layout自动布局
- iOSLearningDiary以编码的方式实现Auto Layout自动布局
- iOS学习笔记03——以编码的方式实现Auto Layout自动布局(二)
- iOS学习笔记03——以编码的方式实现Auto Layout自动布局(二)
- iOS学习笔记03——以编码的方式实现Auto Layout自动布局(二)
- 以编码的方式实现Auto Layout自动布局(一)
- 以编码的方式实现Auto Layout自动布局(一)
- iOS学习笔记02——以编码的方式实现Auto Layout自动布局(一)
- iOS学习笔记02——以编码的方式实现Auto Layout自动布局(一)
- iOS学习笔记02——以编码的方式实现Auto Layout自动布局(一)
- iOS学习笔记02——以编码的方式实现Auto Layout自动布局(一)
- 【理解】Auto Layout自动布局(二)
- Auto Layout Guide---自动布局指南(二)
- 使用Auto Layout-代码实现自动布局
- 自动布局auto layout
- 第十六章 编码方式实现auto layout
- java接口实现和抽象类
- GitHub删除文件
- JS检测是手机还是电脑访问
- android中的mvp模式(二)
- oracle跨库查询的方法
- 以编码的方式实现Auto Layout自动布局(二)
- 使用GCD
- VisualSVN Server仓库迁移到Linux(包含所有版本, 权限,用户信息)
- java数据结构分析
- 数据库连接池问题
- leetcode-Reverse Integer-python
- Visual Format Language语法的简单学习
- 纯CSS实现 table 表格奇偶行不同颜色
- Static、Extern、Volatile及Const关键字总结