對(duì)于復(fù)雜的布局顽铸,盡量讓子view針對(duì)父view布局茁计。
在xcode 8 中,使用自動(dòng)推算高度時(shí)谓松, 對(duì)tableView進(jìn)行約束時(shí)容易出現(xiàn)約束沖突星压。
比如:
在cell的contentView中添加一個(gè)bgview,bgview中有兩個(gè)label并排排列鬼譬,bgview的背景為紅色娜膘,現(xiàn)在想讓bgview根據(jù)lablel的文字內(nèi)容自動(dòng)縮放寬度,并在contentview居中顯示优质。
1竣贪、初始化約束
<div>
WS(weakSelf);
[self.bgView mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.offset(10);
make.bottom.offset(-10);
make.centerX.offset(0);
}];
[self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.leading.offset(5);
make.bottom.offset(-5);
}];
[self.clickLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.leading.equalTo(weakSelf.titleLabel.mas_trailing);
make.top.bottom.equalTo(weakSelf.titleLabel);
make.trailing.offset(-5);
}];
</div>
2.在label賦值后更新bgview的約束
<div>
CGSize size = [self.bgView systemLayoutSizeFittingSize:UILayoutFittingCompressedSize];
[self.bgView mas_updateConstraints:^(MASConstraintMaker *make) {
make.size.mas_equalTo(size);
}];
</div>