iOS UITableView Cell高度自适应方案
2021-12-04 本文已影响0人
芮淼一线
记录一下
方案一
self.tableView.estimatedRowHeight = 0;
- (CGFloat)tableView:(UITableView *)tableView estimatedHeightForRowAtIndexPath:(NSIndexPath *)indexPath
{
return UITableViewAutomaticDimension;
}
方案二
- (CGFloat)tableView:(UITableView *)tableView estimatedHeightForRowAtIndexPath:(NSIndexPath *)indexPath
{
return UITableViewAutomaticDimension;
}
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
return UITableViewAutomaticDimension;
}
方案三
直接使用rowHeight与estimatedRowHeight属性实现Cell高度自适应。
方式1:
self.tableView.estimatedRowHeight = 40;//期望值必须大于1
self.tableView.rowHeight = UITableViewAutomaticDimension;
方式2:
也可以直接使用单个属性
self.tableView.rowHeight = UITableViewAutomaticDimension;
或者:
self.tableView.estimatedRowHeight = 40;//期望值必须大于1
方式3:
甚至可以不设置与高度相关的属性与代理,正确设置cell的约束,即可实现高度自适应,不过不推荐
注意:
这几种方案都能实现cell高度自适应功能,但是它们与cell中设置的约束是有关的,如果设置不正确可能会导致莫名奇妙的问题,所以:
推荐使用至少设置2个属性(或者代理)的方案来实现高度自适应功能