zoukankan      html  css  js  c++  java
  • ios -使用NSLayoutConstraint实现多个view等宽等高等间距

    @interface ViewController ()
    {
      
        
        UIView *firstView;
        UIView *secondView;
        UIView *thirdView;
        
    }
    @end
    
    @implementation ViewController
    
    - (void)viewDidLoad
    {
        [super viewDidLoad];
        
        /**
          第一个view
         */
        firstView = [[UIView alloc]init];
        firstView.translatesAutoresizingMaskIntoConstraints = NO;
        firstView.backgroundColor = [UIColor blueColor];
        [self.view addSubview:firstView];
        
        /**
         第二个view
         */
        secondView = [[UIView alloc]init];
        secondView.translatesAutoresizingMaskIntoConstraints = NO;
        secondView.backgroundColor = [UIColor brownColor];
        [self.view addSubview:secondView];
        
        /**
         第三个view
         */
        thirdView = [[UIView alloc]init];
        thirdView.translatesAutoresizingMaskIntoConstraints = NO;
        thirdView.backgroundColor = [UIColor yellowColor];
        [self.view addSubview:thirdView];
        
        /**绑定三个view*/
        NSDictionary *dic_bind = NSDictionaryOfVariableBindings(firstView,secondView,thirdView);
        /**设置view之间的间距和高度*/
        NSDictionary *dic_Constraint = @{ @"padding":@(10.f),
                                          @"height":@(150.f)
                                         };
        
        /**
         *  第一个view添加约束
         */
        /**垂直方向居中对齐*/
        NSLayoutConstraint *first_CenterY = [NSLayoutConstraint constraintWithItem:firstView attribute:NSLayoutAttributeCenterY relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeCenterY multiplier:1 constant:0];
        
        /**垂直方向添加高度约束*/
        NSArray *first_V = [NSLayoutConstraint constraintsWithVisualFormat:@"V:[firstView(height)]" options:0 metrics:dic_Constraint views:dic_bind];
        [self.view addConstraints:@[first_CenterY]];
        [self.view addConstraints:first_V];
        
        
        /**
         *  第二个view添加约束
         */
        /**垂直方向居中对齐*/
         NSLayoutConstraint *second_CenterY = [NSLayoutConstraint constraintWithItem:secondView attribute:NSLayoutAttributeCenterY relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeCenterY multiplier:1 constant:0];
        
         /**垂直方向添加高度约束*/
        NSArray *second_V = [NSLayoutConstraint constraintsWithVisualFormat:@"V:[secondView(height)]" options:0 metrics:dic_Constraint views:dic_bind];
        [self.view addConstraint:second_CenterY];
        [self.view addConstraints:second_V];
        
        /**
         *  第三个view添加约束
         */
        /**垂直方向居中对齐*/
        NSLayoutConstraint *third_CenterY = [NSLayoutConstraint constraintWithItem:thirdView attribute:NSLayoutAttributeCenterY relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeCenterY multiplier:1 constant:0];
        
         /**垂直方向添加高度约束*/
        NSArray *third_V = [NSLayoutConstraint constraintsWithVisualFormat:@"V:[thirdView(height)]" options:0 metrics:dic_Constraint views:dic_bind];
        [self.view addConstraints:@[third_CenterY]];
        [self.view addConstraints:third_V];
        
        /**给三个view添加水平约束等宽等间距*/
        NSArray * allConstraint_H = [NSLayoutConstraint constraintsWithVisualFormat:@"H:|-padding-[firstView]-10-[secondView(firstView)]-padding-[thirdView(secondView)]-padding-|" options:0 metrics:dic_Constraint views:dic_bind];
        [self.view addConstraints:allConstraint_H];
        
        
    }

  • 相关阅读:
    mysql分表+查询
    mysql 数据库 分表后 怎么进行分页查询?Mysql分库分表方案?
    mysql 索引失效的情况
    mysql 索引 最左前缀原则
    redis同时操作多个key set get del 呢?mset mget pipeline
    mysql唯一索引和普通索引的选择和区别
    那些php面试官的问题
    php快速排序
    PHP抽象类与接口的区别
    php session
  • 原文地址:https://www.cnblogs.com/thbbsky/p/4531113.html
Copyright © 2011-2022 走看看