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

转载于:https://www.cnblogs.com/thbbsky/p/4531113.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值