• 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];
        
        
    }

  • 相关阅读:
    linux NFS 的安装准备
    linux Sersync 参数说明
    linux测试 Sersync 是否正常
    linux开启 Sersync 守护进程进行数据同步
    linux 配置 Sersync
    Sersync 上配置 Sersync 服务
    linux Sersync 上配置客户端
    PowerDesigner一些小技巧
    C# System.Attribute(验证类)
    C#:实体类中做数据验证
  • 原文地址:https://www.cnblogs.com/thbbsky/p/4531113.html
Copyright © 2020-2023  润新知