前言

Xcode 13.3.1
iOS 11.3.1

先说下我这遇到的情况,
1、tableView 刷新时候闪动、或者定位出错
2、tableView刷新 + scrollToRow 滚动 闪动

1.1、tablwView预设高度

tableView.rowHeight = UITableView.automaticDimension  //snpkit 自适应高度
tableView.rowHeight = 0  //手动设置高度
tableView.estimatedRowHeight = UITableView.automaticDimension
tableView.estimatedSectionHeaderHeight = 0
tableView.estimatedSectionFooterHeight = 0

什么?你说上面不行!嗯,我的好像也是不行,那就没事了,在继续添加下一个

1.2、压制reload刷新隐式动画

CATransaction.setDisableActions(true)
tableView.reloadData()
CATransaction.commit()

以上单纯的刷新就不会出问题了

但是我的是上诉情景2,依旧会闪动,使用scrollToRow 滚动动画依然有问题(如果动画设置false就没问题了)

2.1、tableview使用 insertRows 插入而不是reload刷新

使用情景:一个类似聊天的AI互动,发送数据成功后,tableview滑动到这条最新数据上
使用说明:使用CATransaction 压制 insertRows插入动画,然后刷新单独行,刷新单独行不行压制动画,否则会导致部分内容展示失败(原因未知)

let indexPath = IndexPath(row: count - 1, section: 0)
CATransaction.setDisableActions(true)
table.insertRows(at: [indexPath], with: .none)
CATransaction.commit()
table.reloadRows(at: [indexPath], with: .none)
DispatchQueue.main.async {table.scrollToRow(at: indexPath, at: .top, animated: true)
}

什么?你说上面不行!嗯,我的好像也有部分不行,那就没事了,在继续添加下一个

2.2、tabview 频繁刷新闪动问题

使用场景:我这边因为tableView 的cell 中嵌套了另外一个 tableview,里面tableview刷新之后,外边继续刷新,然后继续第三步,就会发生闪动,我取消一个刷新之后,闪动问题解决

多次刷新可能导致闪动

什么?你说上面不行!嗯,才疏学浅,告辞

UITableView reload刷新闪动问题相关推荐

  1. window.location.reload() 刷新页面时,如何不弹出提示框

    reload时是会弹出刷新的窗口的 改为window.location.href='url'就可以了 技术提供:武汉信息网 娱乐提供:027游戏攻略网 转载于:https://www.cnblogs. ...

  2. Location.reload() 刷新

    Location.reload(forcedReload) 方法用来刷新当前页面.forcedReload 该参数要求为布尔类型,1.当取值为 true 时,将强制浏览器从服务器重新获取当前页面资源, ...

  3. 微信浏览器无法使用reload()刷新页面 gif图兼容性

    场景1 是这样子的,页面有一个ajax请求,在页面上有一个按钮,点击的时候执行window.location.reload(),正常情况reload()后页面依然会向后台发出请求,但在安卓的微信浏览器 ...

  4. UITableView 局部刷新

    2019独角兽企业重金招聘Python工程师标准>>> 1.刷新表中的指定区 NSIndexSet * nd=[[NSIndexSet alloc]initWithIndex:1]; ...

  5. 解决微信浏览器无法使用reload()刷新页面

    场景是这样子的,页面在初始化时有一个ajax请求,在页面上有一个按钮,点击的时候执行window.location.reload(),正常情况reload()后页面依然会向后台发出请求,但在安卓的微信 ...

  6. UITableView reloadData 跳动闪动

    问题 在使用表格TableView的时候,常常需要 根据数据更新表格,最常用的方式就是reloadData 一般情况下是没有什么问题的,有时候会遇到cell或者section跳动,产品大大肯定是要打死 ...

  7. php中location.reload,js刷新页面location.reload()用法详解

    本文介绍了js刷新页面函数location.reload()的用法,有关js location.reload()函数的例子,有需要的朋友参考下. 在javascript编程中,多使用location. ...

  8. js 刷新页面window.location.reload();

    Javascript刷新页面的几种方法: 1   history.go(0) 2   window.location.reload() window.location.reload(true)  3  ...

  9. js刷新页面location.reload()用法

    本文介绍了js刷新页面函数location.reload()的用法,有关js location.reload()函数的例子,有需要的朋友参考下. 在javascript编程中,多使用location. ...

最新文章

  1. Kafka系列三 java API操作
  2. python学习干货教程(10):列表
  3. Type difference of character literals in C and C++
  4. Big Data應用:以玩家意見之數據分析來探討何謂健康型線上遊戲(上)
  5. Java黑皮书课后题第5章:*5.15(显示ASCII码字符表)编写一个程序,打印ASCII字符表从‘!‘到‘~‘的字符。每行打印10个字符。ASCII码表如附录B所示。数字之间用一个空格字符隔开
  6. 液晶电视服务器无响应时间,液晶电视响应速度时间是多少更好啊?
  7. python制作计算机程序_用 Python 开发实用程序 – 计算器
  8. Finished yeah!
  9. jQuery操作DOM元素案例
  10. (Docker实战) 第三篇:配置_开发环境
  11. 抖音api开放平台对接_抖音新增酒店预订等功能,一只脚踏进美团、携程腹地
  12. 使用Unity开发RPG游戏完整指南(全)
  13. ISO IEC 27001 企业信息安全管理要求
  14. 软件商业模式的发展与SaaS
  15. 软件项目开发流程逻辑图
  16. Linux tc QOS 详解
  17. Bitmap、CBitmap、HBITMAP以及BITMAP的相互转换
  18. Git分布式版本控制遇到的问题如何把本地的项目上传到码市上
  19. 区号组号组内块号块内地址号的计算
  20. 华为OD机试 - 按身高和体重排队(Java) | 机试题+算法思路+考点+代码解析 【2023】

热门文章

  1. python基础笔记一
  2. 函数式编程-Stream流
  3. SpringCloud之利用FTL生成Word报表并下载
  4. linux下通过串口ftp,eftp简单文件传输工具支持串口、网络、Windows、Linux、单片机平台-博客...
  5. 【Echarts】设置主题、扇形格式化
  6. JAVA混合执行,Java8默认情况下是混合执行模式
  7. AdaptiveAvgPool1D内部实现
  8. 2016年 河南工业大学校赛 C题.魔法宝石
  9. LCHub 1月低代码平台排行榜出炉:宜搭遥遥领先微搭低代码
  10. VScode+Unity3D的配置