一段时间以来,我一直试图让我的 tableview 工作作为一种由后台线程更新的电子表格,当单元格更新时,它会在几秒钟内高亮显示(更改样式),然后返回原始样式。我已经知道,我不能直接在表格单元格中存储和设置样式,我需要某种支持类来保存这些数据。但是 tableview 及其“重用”单元格(对不同的数据使用相同的单元格)的行为真的很奇怪。当所有单元格都适合屏幕时,它对我来说完美无缺,但是一旦我放置了大约 100 个单元格并且它变得可滚动,它就开始出现问题,有时样式(或设置的图形)会消失并且在滚动出现后,如果我禁用了一些顶部单元格的视图,滚动后的其他一些单元格也会被禁用,依此类推。有什么正确的方法可以做到这一点吗?
我需要的基本上是
Background data thread ---updates--> tableview
Another thread --after few seconds removes style--> tableview
正如我现在所拥有的那样,我有一个模型类,它包含数据、样式和对表格单元格的引用(我禁用了排序,所以应该没问题),后台线程更新模型类中的数据,并且该模型类改变了样式在引用的单元格上并在“样式移除器”线程中注册自身,然后删除样式。
我认为发布我的实际代码不会有用,因为一旦我发现单元格正在被重用,我的代码就变得太复杂并且有点不可读,所以我想以正确的方式完全重做。
性能对我来说不是那么重要,不会有超过 100 个单元格,但是在 tableview 中突出显示和具有按钮必须完美无缺。
编辑:这是我与此相关的另一个问题的链接。