【问题标题】:Synchronous UITableView/UICollectionView usage for offline data离线数据的同步 UITableView/UICollectionView 使用
【发布时间】:2019-03-25 02:43:20
【问题描述】:

我很高兴尝试与 iOS UITableView/UICollectionView 视图争吵来做我需要的事情。本质上,我有一些与本地交互的数据 - 没有网络延迟,并且操作都很简单,可以同步完成。

然而,在这些类中重新加载数据似乎默认是异步发生的,没有明显的方法可以同步使用它们。 reloadData() 似乎是在没有像滚动这样的用户交互的情况下强制更新的唯一方法,但它是异步的,没有明显的同步替代方案。

这些类提供了很多功能(尤其是拖放功能),但是当用户直接操作数据时,明显的延迟会有点破坏性。例如,在用户更改数据时强制 View 的dataSource 到不同的类的实验破坏了使用这些类的目的并使情况更加复杂。

有什么方法可以在很大程度上以同步的方式使用这些类吗?

【问题讨论】:

  • 除非您从根本上更改整个数据集(例如在您提到切换dataSource 时),否则应避免使用reloadData。您可以使用reloadRowsinsertRowsdeleteRows 以更精细的方式进行更改。也许您可以通过一个具体示例来说明您的问题,说明您正在尝试做什么以及您在使用 tableview 方法时遇到的问题?

标签: ios uitableview synchronous


【解决方案1】:

Crikey - 经过数小时的尝试后提出一个愚蠢的问题,5 分钟后就会得到答案。

我意识到我的错误不是 TableView 及时更新,而是 dataSource 保留数据时应该被清除。

就我所见 - reloadData 确实异步发生,但在相当短的渲染周期内,用户应该察觉不到。

正如@Paulw11 所指出的,如果您没有对每个突变的数据集进行核对(就像我一样),那么更好的方法是通过基于行的操作

【讨论】:

    猜你喜欢
    • 2011-09-10
    • 2016-05-12
    • 1970-01-01
    • 1970-01-01
    • 2010-09-21
    • 2018-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多