博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Auto Layout简单应用——以编码的方式实现Auto Layout自动布局(二)
阅读量:6801 次
发布时间:2019-06-26

本文共 1792 字,大约阅读时间需要 5 分钟。

在上一篇文章中我们简单的介绍了使用Visual Format Language创建布局约束来实现自动布局,这种方法创建的布局约束能够满足大部分的布局的需求。但是想要实现类似于这样的约束:button.width = 2 * button.height就不能满足要求了,这一篇我们我们简单介绍一下如何创建这样的布局约束。

Apple就是非常贴心,它为我们提供了另外一个方法创建类似于view1.attr1 = view2.attr2 * multiplier + constant这样的约束,方法如下:

 

[cpp] 
  1. +(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。效果图如下

 

不多说,上代码

 

[cpp] 
    1. - (void)viewDidLoad  
    2. {  
    3.     [super viewDidLoad];  
    4.     // Do any additional setup after loading the view.  
    5.     self.edgesForExtendedLayout = UIRectEdgeNone;  
    6.       
    7.     UIButton * button = [UIButton buttonWithType:UIButtonTypeSystem];  
    8.     button.layer.borderColor = [UIColor blackColor].CGColor;  
    9.     button.layer.borderWidth = 2.0;  
    10.     [button setTitle:@"W=2*H" forState:UIControlStateNormal];  
    11.     [self.view addSubview:button];  
    12.       
    13.     [button setTranslatesAutoresizingMaskIntoConstraints:NO];  
    14.       
    15.     NSMutableArray * tempConstraints = [NSMutableArray array];  
    16.       
    17.     [tempConstraints addObjectsFromArray:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-60-[button]" options:0 metrics:nil views:NSDictionaryOfVariableBindings(button)]];  
    18.     [tempConstraints addObjectsFromArray:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-30-[button(==30)]" options:0 metrics:nil views:NSDictionaryOfVariableBindings(button)]];  
    19.       
    20.     [self.view addConstraints:tempConstraints];  
    21.       
    22.     [self.view addConstraint:[NSLayoutConstraint constraintWithItem:button attribute:NSLayoutAttributeWidth relatedBy:NSLayoutRelationEqual toItem:button attribute:NSLayoutAttributeHeight multiplier:2.0 constant:10.0]];  
    23. }
    24. http://blog.csdn.net/dongbaojun_ios/article/details/12624393

转载于:https://www.cnblogs.com/geek6/p/3905517.html

你可能感兴趣的文章
XSS研究4-来自外部的XSS攻击的防范
查看>>
Spring知识点总结-1
查看>>
微软私有云分享(R2)21 BMC提升B格
查看>>
MDSF:如何使用GMF来做TOGAF建模工具
查看>>
Spring Security简介
查看>>
打造一流的研发中心
查看>>
MCollective架构篇3-Puppet插件的部署及测试
查看>>
配置GNS使用CRT连接
查看>>
Java:集合类性能分析
查看>>
创建Server 2012 VHDX虚拟磁盘模板
查看>>
IE调试网页之五:使用 F12 开发人员工具调试 JavaScript 错误 (Windows)
查看>>
JavaScript词法作用域与调用对象
查看>>
各个JAVA场景下的内存图
查看>>
【干货】程序员常访问的国外技术交流网站汇总
查看>>
linux watchdog demo hacking
查看>>
日志分析系统——Hangout源码学习
查看>>
5.9. sort - sort lines of text files
查看>>
cms无法登陆
查看>>
JavaScript中事件处理
查看>>
VSTO 向office文档中插入内容
查看>>