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

posted @ 2015-05-26 17:19  曹县三胖暴打大猩猩  阅读(2094)  评论(0编辑  收藏  举报