【问题标题】:masonry autolayout not working砌体自动布局不起作用
【发布时间】:2015-11-01 12:15:26
【问题描述】:

布局代码:

[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 吗?

【问题讨论】:

    标签: ios autolayout masonry


    【解决方案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 定义的约束的某些值,您可能应该只使用它

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-20
      • 2019-11-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多