zoukankan      html  css  js  c++  java
  • Auto Layout简单应用——以编码的方式实现Auto Layout自动布局(二)

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

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

    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。效果图如下


    不多说,上代码

      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
  • 相关阅读:
    rpcbind禁用不了,111端口无法释放?
    python3 pexpect 自动交互修改linux系统密码
    pip将包安装到指定位置
    使用openssl对文件进行加密解密
    james-2.3.2.1发邮件慢,不能多线程同时发
    java指令执行一个class文件并指定依赖包的路径
    ltib for imx280 tips
    使用net-snmp的snmptranslate命令验证MIB文件
    嵌入式linux去掉开机进度条,更换背景,换企鹅logo
    使用cppcheck对C代码进行静态检查
  • 原文地址:https://www.cnblogs.com/geek6/p/3905517.html
Copyright © 2011-2022 走看看