砌体自动布局不起作用

时间:2015-11-01 12:15:27

标签: ios autolayout masonry

布局代码:

[leftLabel mas_makeConstraints:^(MASConstraintMaker *make) {
    make.edges.equalTo(self.view).with.insets(UIEdgeInsetsMake(10, 10, 0, 0));
}];

[leftLabel mas_updateConstraints:^(MASConstraintMaker *make) {
    make.edges.equalTo(self.view).with.insets(UIEdgeInsetsMake(10, 20, 100, 20));
    make.width.equalTo(@(200)); 
}];

我想将leftLabel的宽度设置为200,但结果不对,你能告诉我原因,非常感谢,

我有另一个问题,我可以随时使用mas_updateConstraints而不是mas_makeConstraints吗?

1 个答案:

答案 0 :(得分:1)

设置标签边缘时,间接定义其宽度。所以你应该设置边缘或宽度。不是都。在你的情况下,如果你想将标签的宽度设置为200并保留边缘插入的其余三个常量,你应该这样做:

[leftLabel mas_makeConstraints:^(MASConstraintMaker *make) {
    make.top.equalTo(@10);
    make.left.and.bottom.equalTo(@0);
    make.width.equalTo(@200);
}];

根据Masonry的文档,您应该使用mas_updateConstraints来更新现有约束的常量。因此,如果您想更改先前使用mas_makeConstraints

定义的约束的某些值,则应该只使用它
相关问题