我的 UITableView 有一个相当复杂的数据源。我非常小心地将它与 tableview 本身保持同步,每当某些数据发生变化时手动插入和删除行/部分(带有动画),反之亦然。
我很难 100% 有信心保持这些匹配。 View 和数据之间不匹配的影响可能很严重 - 例如,选择一行并尝试对关联的对象执行某些操作,当该对象不存在时,将导致崩溃。许多其他错误会导致不太明显的错误(例如,对错误的对象进行操作)。
我在想如果我在每次数据更改后调用 reloadData 而不是手动修改 View ,所有这些都会消失。但是那样我会失去动画。
所以也许我可以在动画结束后以某种方式调用 reloadData ,作为安全措施。
对你的想法感兴趣!
我感觉到你的痛苦。不幸的是,我认为重新加载的想法没有多大帮助。如果模型和表格 View 之间存在差异,根据我的经验,该问题表现为更新动画之前或期间的异常。如果有问题,我发现您无法重新加载,而且我认为您不想这样做。
根据我的经验,这些是导致模型容易与表格 View 不同步的一些风险因素:
这有点超出了表格 View 的范围,而且,我并不声称自己是这里所有讲道的完美实践者,但我认为让您的应用充满信心的方法包括以下几点:
在没有美术和应用逻辑的情况下构建 UI;只是一个 模型的模拟版本 - 在可能的范围内 - 等于 复杂性,但不是数量,真实的东西。
在一定程度上构建模型和应用逻辑,以及测试 可能 - 独立于 UI 进行操作。
在您进行测试时,将异常视为您的 friend ,告诉您您需要修复。 尽可能长时间地插入尽可能少的防御性代码。
我的 0.02 美元。祝你好运。
关于iphone - 在 UITableView 上使用 reloadData 作为保险单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9961736/
欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) | Powered by Discuz! X3.4 |