2015-11-01 55 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

好的,非常感謝你 –