2015-11-01 66 views
0

布局代码:砖石自动布局不工作

[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

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

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

根据砌体的文档,你应该使用mas_updateConstraints更新的常数现有的限制。所以你应该只能使用它,如果你想改变一些你刚才定义的限制值mas_makeConstraints

+0

好的,非常感谢你 –