UITableView单元格自适应高度
2018-06-12 本文已影响202人
zhanglizzy
cell自适应高度的问题,虽然很简单,但是有两个细节点需要注意一下,稍微整理了下如下:
1、【重点】在tableView创建的时候设置rowHeigh属性,注意千万不要实现行高的代理方法,否则无效!
_tableView.rowHeight = UITableViewAutomaticDimension;
_tableView.estimatedRowHeight = 100;
2、添加到单元格上的第一个子视图的top和最后一个子视图的bottom必须设置与单元格的top和bottom约束关联,相对布局。这里推荐使用Masonry很好使!
如果出现问题,请回头检查一二步!
ps:提到tableView,自然就有cell的处理,cell上子视图添加的时候,有两种方式
[cell addSubview:<#(nonnull UIView *)#>];
[cell.contentView addSubview:<#(nonnull UIView *)#>];
两者看上去没啥区别,但是出现单元格滑动需求的时候,前者直接添加到cell上的子视图不会移动,而后者添加到cell.contentView上的子视图可以随整体左右移动。
so推荐使用后者,[cell.contentView addSubview:<#(nonnull UIView *)#>];
但是cell设置背景色则与上反之,
cell.backgroundColor = [UIColor redColor];
cell.contentView.backgroundColor = [UIColor redColor];
在单元格滑动时,cell.backgroundColor是设置了整个单元格的背景色,而后者不是。