我的代码我的坑(十八) —— 关于UITableView分页数据滚动到顶部异常的问题(一)

版本记录

版本号 时间
V1.0 2022.07.25 星期一

前言

做了好几个APP,碰到了大大小小的很多坑,以前碰到坑,解决了就结束了,这里想把自己碰到的坑记录下来,一来给自己备查二来希望可以帮助到大家。感兴趣的可以关注下,也欢迎大家补充留言,感兴趣的看上面几篇文章。
1. 我的代码我的坑(一) —— 自签名证书导致请求取消的问题(一)
2. 我的代码我的坑(二) —— UIImageView动画点击后动画和图片消失的问题(一)
3. 我的代码我的坑(三) —— iOS9系统WKWebView加载页面白板的问题(一)
4. 我的代码我的坑(四) —— iOS12系统自定义渐变色UISwitch手机横屏的异常问题(一)
5. 我的代码我的坑(五) —— 不可编辑状态的UITextView文本高度大于视图高度默认滚动到底部的问题(一)
6. 我的代码我的坑(六) —— UITextField输入长度自动截取时汉字和拼音带来的末位截取不能正常输入汉字的问题(一)
7. 我的代码我的坑(七) —— UIImageView做序列帧动画结束后没有回调并且“隐藏”(一)
8. 我的代码我的坑(八) —— iOS 13.1.2 Debug调试模式系统layoutSubviews中修改frame循环调用导致的崩溃(一)
9. 我的代码我的坑(九) —— 系统键盘拼音全键无法正常联想以及输入汉字高亮区识别不计入长度计数的问题(一)
10. 我的代码我的坑(十) —— iOS9 Xib实例化的UITableViewCell中UIButton和UISwitch等控件的IBAction点击无响应的问题(一)
11. 我的代码我的坑(十一) —— macOS Mojave 和 xcode 11.1 (11A1027)环境下运行iphonex以上流海屏xcode install时xocde崩溃闪退的问题(一)
12. 我的代码我的坑(十二) —— iOS10字体DIN Condense Bold字体显示不全顶部被切割的问题(一)
13. 我的代码我的坑(十三) —— 状态栏高度的动态计算(一)
14. 我的代码我的坑(十四) —— Xcode 12.5中React编译不过的问题(一)
15. 我的代码我的坑(十五) —— dispatch_once导致的死锁的问题(一)
16. 我的代码我的坑(十六) —— 关于无法验证包完整性的问题(一)
17. 我的代码我的坑(十七) —— 关于UniversalLink校验不通过的问题(一)

问题描述

在做产品的需求的时候,需要用到分页加载的场景,在请求分页数据以后,需要重新刷新UITableView将分页数据显示出来。

但是产品提出来一个需求,就是双击导航让列表滚动到顶部。这个时候问题就出现了,只要是在分页的情况下,设置滚动到顶部,UITableView就没办法滚动到顶部,就一点点往上。需要双击很多次才可以最终完全滚动到顶部。

不管是设置contentOffset还是scrollToRect都不管用。我使用的是下面的方法:

[self.tableView setContentOffset:CGPointZero animated:YES];

问题解决

线上找了很多方法,最终找到了原因和解决办法。

原因:当tableViewCell数量改变后再次reloadcontentOffset的值是通过预估各cell的高度及headerfooter的高度后计算得到的,并非准确的值。知道原理后,解决办法也就简单了,关闭系统自带的预估就好了。estimatedRowHeight是一个预估高度,iOS11之前是为0,在iOS11下,这个值默认为44

落实到代码上就如下所示:

_tableView.estimatedRowHeight = 0;
_tableView.estimatedSectionHeaderHeight = 0;
_tableView.estimatedSectionFooterHeight = 0;

参考文章

  • iOS解决UITableView的contentOffset捕获不准确的问题
  • 关于iOS中UITableView自适应动态高度的回到顶部错位问题解决

后记

本篇主要讲述了关于UITableView分页滚动到顶部异常的问题,感兴趣的给个赞或者关注~~~

你可能感兴趣的:(我的代码我的坑(十八) —— 关于UITableView分页数据滚动到顶部异常的问题(一))