设置UITableView自动计算高度
设置tableview的样式
- (CGFloat)tableView:(UITableView *)tableView estimatedHeightForRowAtIndexPath:(NSIndexPath *)indexPath{
return 0.01;
}
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
return UITableViewAutomaticDimension;
}
设置cell布局的形式,垂直的方向布局上需要有距离底部的布局
Masonry优先级的布局
self.titleLbl.preferredMaxLayoutWidth = self.contentView.frame.size.width -120;
[self.titleLbl setContentHuggingPriority:UILayoutPriorityRequired forAxis:UILayoutConstraintAxisVertical];
[self.titleLbl mas_updateConstraints:^(MASConstraintMaker *make) {
make.top.left.mas_equalTo(10);
make.right.mas_equalTo(self.iconImgV.mas_left);
make.bottom.mas_equalTo(self.contentView).offset(-10);
}];
[self.iconImgV mas_updateConstraints:^(MASConstraintMaker *make) {
make.top.mas_equalTo(self.titleLbl);
make.height.mas_equalTo(40);
make.left.mas_equalTo(self.titleLbl.mas_right);
make.width.mas_equalTo(40);
make.right.mas_equalTo(self.subtitleLbl.mas_left);
}];
[self.subtitleLbl mas_updateConstraints:^(MASConstraintMaker *make) {
make.right.mas_equalTo(self).offset(-10);
make.top.bottom.mas_equalTo(self.titleLbl);
make.left.mas_lessThanOrEqualTo(self.iconImgV.mas_right);
}];
[self.titleLbl setContentCompressionResistancePriority:UILayoutPriorityRequired forAxis:UILayoutConstraintAxisHorizontal];
[self.iconImgV setContentCompressionResistancePriority:UILayoutPriorityRequired forAxis:UILayoutConstraintAxisHorizontal];
[self.subtitleLbl setContentCompressionResistancePriority:UILayoutPriorityDefaultLow forAxis:UILayoutConstraintAxisHorizontal];
设置控件自适应高度
[self.titleLbl setContentHuggingPriority:UILayoutPriorityRequired forAxis:UILayoutConstraintAxisVertical]
设置控件伸缩和拉伸的优先级
[self.titleLbl setContentCompressionResistancePriority:UILayoutPriorityRequired forAxis:UILayoutConstraintAxisHorizontal];
[self.iconImgV setContentCompressionResistancePriority:UILayoutPriorityRequired forAxis:UILayoutConstraintAxisHorizontal];
[self.subtitleLbl setContentCompressionResistancePriority:UILayoutPriorityDefaultLow forAxis:UILayoutConstraintAxisHorizontal];