ios - UITableView 由于在滚动 tableview 的同时重新加载数据而崩溃
问题描述
我正在使用 UITableView 来显示记录列表。我的表允许从顶部和底部刷新。从顶部刷新时,旧记录保持可见,直到获取新数据。获取数据后,将删除数组中的所有记录并填充新记录。然后作为最后一步,我刷新 tableview 以反映新获取的数据。
一切都像一个魅力。
但...
当我们进行猴子测试时,它会导致崩溃。在顶部刷新期间,当数据被获取时,如果我继续滚动,拉动表格视图,经过几次尝试,会出现一个不幸的时刻,即删除数组以添加新记录,但当时 UITableView 也在布置单元格由于不断的拉动。这会导致崩溃。
一个简单的解决方法是在进行顶部刷新时清空 tableview,但就 ui 美学而言,这看起来并不好。此外,如果呼叫失败,我将不会向用户显示任何内容。
我尝试将刷新代码封装在tableviewbeginUpdate
和endUpdate
block 中,但由于tableview 本身没有变化(即没有添加/删除),所以它不会运行。
任何帮助,将不胜感激。
解决方案
既然您说您滚动并崩溃可能是因为您尝试将数据插入到不再可见的索引中。在尝试更新表之前,您应该以某种方式检查您的索引。一些代码将帮助我更好地理解。
推荐阅读
- javascript - Nuxt 抛出:没有“new”就无法调用类构造函数
- bash - 检查 curl 响应代码并从 bash 函数内部返回结果
- azure - 如何使用 cli 从 Azure 文件共享中删除文件夹
- javascript - 尽管可能有多个匹配项,但如何仅从映射的数据中动态渲染出一段内容?
- python - 将多行 txt 数据转换为 CSV
- reactjs - 为函数而不是组件反应延迟加载
- facebook - 当用户通过“应用程序和网站”设置从 Facebook 删除我的应用程序并尝试在我的应用程序中重新连接时会发生什么?
- sharepoint-online - 是否可以将值从属性传递到 SPFx 中的 CSS?
- powershell - PowerShell:带有字符串参数的 pwsh -Command/-File 包含要传递给以根路径为值的子进程的参数
- react-hook-form - react-hook-form:如何在 reactstrap CustomInput 中重置标签