如何使用Masonry DSL进行自动布局来定义视图之间的垂直和水平关系?

时间:2015-01-21 22:59:56

标签: ios autolayout ios-autolayout

使用Apple的可视化格式语言,使用间隔符设置视图与其超级视图之间的水平和垂直关系非常简单。

如果我希望下面的可视示例中的view2具有固定的宽度,而view1将填充剩余的空间。使用VFL,我会按如下方式指定此行为:

| - [厂景] - [视图2(== 100) - |

visual example of layout I want to achieve with Masonry

使用Masonry,如何在视图之间建立这些关系并不是那么清楚; view1没有“察觉”view2,并且会下冲或重叠它。我错过了什么?

1 个答案:

答案 0 :(得分:1)

观点仍然彼此“意识到”。关键是将view2的左边缘固定到view1的右边缘:

[view1 mas_makeConstraints:^(MASConstraintMaker *make) {
            make.top.bottom.left.equalTo(containerView);
        }];

[view2 mas_makeConstraints:^(MASConstraintMaker *make) {
            make.top.bottom.equalTo(containerView);
            make.left.equalTo(view1.mas_right);
            make.right.equalTo(containerView);
            make.width.equalTo(@100);
        }];