iOS解决UITableView的contentOffset捕获不准确的问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS解决UITableView的contentOffset捕获不准确的问题相关的知识,希望对你有一定的参考价值。
参考技术A 在做一个测试demo的时候,点击tabBar按钮,让tableVIew刷新数据,并且回到顶部设置好的内边距位置,第一次点击是好的,如果使用tableView底部上拉刷新功能,数据量多之后,再点tabBar回到顶部,设置好contentInset距离顶部的内边距,就会不对齐,会有遮挡当tableView的Cell数量改变后再次reload,contentOffset的值是通过预估各cell的高度及header、footer的高度后计算得到的,并非准确的值。知道原理后,解决办法也就简单了,关闭系统自带的预估就好了estimatedRowHeight是一个预估高度,ios11之前是为0,在iOS11下,这个值默认为44
iOS UITableView 解决估算行高和指定行高的矛盾
1、一般来说 在iOS 中若UITableViewCell 固定行高, 会通过
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { return 81; }
来设置;
2、如果需要由系统自动估算行高, 可以通过设置以下代码实现:
// 动态行高 self.tableView.rowHeight = UITableViewAutomaticDimension; // 预估行高 self.tableView.estimatedRowHeight = 150;
3、如果一个tableview即想用固定行高又想用预估行高(自动计算行高) 这两者的矛盾怎样解决呢?以下代码 关键在于 这句话:
return UITableViewAutomaticDimension;
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { if (indexPath.section == 0 || indexPath.section == 1) { return 81; } // 注意:解决固定行高和系统自动计算行高 其他组走系统自动计算行高 return UITableViewAutomaticDimension; }
以上是关于iOS解决UITableView的contentOffset捕获不准确的问题的主要内容,如果未能解决你的问题,请参考以下文章
ios8 UITableView设置 setSeparatorInset:UIEdgeInsetsZero不起作用的解决办法