iOS开发 - Masonry


    //mas_makeConstraionts 添加约束
    [blueView mas_makeConstraints:^(MASConstraintMaker *make) {
        //trailing 右侧 equalTo相对于哪个视图 offset 约束值
        make.trailing.equalTo(self.view).offset(-50);
        //如果相对于父视图 可以省略使用下面的方法
        //equalTo() 参数必须是对象
        make.bottom.equalTo(@(-50));
        make.width.equalTo(@100);
        //mas_equalTo() 参数可以是基础类型
        make.height.mas_equalTo(60);
    }];

    [greenView mas_makeConstraints:^(MASConstraintMaker *make) {

        make.trailing.mas_equalTo(blueView.mas_leading).offset(-60);
        make.bottom.mas_equalTo(blueView.mas_top).offset(-60);
        make.width.mas_equalTo(blueView);
        make.height.mas_equalTo(60);
    }];
 /** //删除旧约束 更新新约束 [greenView mas_remakeConstraints:^(MASConstraintMaker *make) { }]; //更新约束 [greenView mas_updateConstraints:^(MASConstraintMaker *make) { }]; */

    案例:设置一行均匀分布的按钮

    //使用masonry不需要设置这个属性
    //    green_btn.translatesAutoresizingMaskIntoConstraints = NO;

    //    //长度固定 最左最右固定
    //    [@[red_btn,blue_btn,green_btn] mas_distributeViewsAlongAxis:MASAxisTypeHorizontal withFixedItemLength:80.0 leadSpacing:10 tailSpacing:10];
    //    MASAxisTypeHorizontal,   水平方向 三个按钮在同一水平线上
    //    MASAxisTypeVertical
    //宽,左,右 固定

    [@[red_btn,blue_btn,green_btn] mas_makeConstraints:^(MASConstraintMaker *make) {
        make.top.mas_equalTo(100);
        make.height.mas_equalTo(100);
    }];

    //水平方向 按钮的间距是固定的
    //leading和tailling 固定
    [@[red_btn,blue_btn,green_btn] mas_distributeViewsAlongAxis:MASAxisTypeHorizontal withFixedSpacing:10 leadSpacing:10 tailSpacing:10];


    更新视图方法
    //如果需要更新约束,需要调用这个方法
    [self.view setNeedsUpdateConstraints];
    //更新约束 调用这个 方法
    [self.view updateConstraintsIfNeeded];

    [UIView animateWithDuration:2 animations:^{
        //更新约束
        [self.view layoutIfNeeded];
        self.padding = f;
    } completion:^(BOOL finished) {
        [self updateThreeView];
    }];

你可能感兴趣的:(iOS开发 - Masonry)