注意点一
//在设置 tableView 高度为自适应(UITableViewAutomaticDimension)
//要记得设置估算高度(estimatedRowHeight)才会发挥作用
_tableView.rowHeight = UITableViewAutomaticDimension;
_tableView.estimatedRowHeight = 100.0f;
注意点二
- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(nullable NSString *)reuseIdentifier;
//直接在cell的初始化方法里用autolayout布局
//布局参照最好都以contentView为基准
例:[self makeConstraints];
- (void)makeConstraints {
[self.nameLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(self.contentView).offset(16.0f);
make.top.equalTo(self.contentView).offset(16.0f);
}];
[self.whiteView mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.equalTo(self.contentView);
make.left.right.equalTo(self.contentView);
make.bottom.equalTo(self.nameLabel).offset(10.0f);
}];
//假设我们是按从上往下的顺序开始布局。
//当有高度动态变化的控件(如:nameLabel)时,用 whiteView 来框住 nameLabel ,这样我们就可以根据 whiteView 来确定 nameLabel 的位置。
//如果最底部的控件的高度是固定的,我们直接相对 whiteView 布局即可;
//如果最底部的控件的高度不是固定的,我们需要添加一个额外的底部控件(如:autoResizingView)来确定布局,这样就可以动态布局高度啦!
UIView *autoResizingView = [[UIView alloc] init];
[self.contentView addSubview:autoResizingView];
[autoResizingView mas_remakeConstraints:^(MASConstraintMaker *make) {
make.top.equalTo(self.whiteView.mas_bottom);
make.left.right.equalTo(self.contentView);
make.bottom.equalTo(self.contentView).offset(-10.0f);
}];
}
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。