我有一个自定义的UITableViewCell,其中包括标签和imageView。如果表视图是可见视图并且它上面有一个单元格,如果我以编程方式更新标签的文本和imageView的图像并在我执行时记录,则在标签日志中看到通知后大约需要4秒钟和图像更新。以下是发生的事情的顺序和方式:
- 加载包含表格和一个自定义单元格的视图
- 使用和NSOperation(和队列)
将文件写入磁盘- 当NSOperation完成文件写入后,它会激活一个NSNotification(defaultCenter),它告诉单元格的视图更新标签和图像并设置[self setNeedsDisplay]
- 我在日志中看到单元格已收到通知并已完成设置新值
- 约4秒后,单元格的视图实际更新。
是什么给出了?
答案 0 :(得分:4)
我特定问题的解决方案取决于我更新数据的方式,我使用NSOperation(和队列)发送通知,通知响应者然后更新视图。问题是NSOperation在技术上存在于另一个线程中,所以我应该做的是:
- 使用和NSOperation(和队列)
将文件写入磁盘- 当NSOperation完成文件写入后,它会触发NSNotification(defaultCenter),响应者应该执行SelectorOnMainThread一个实际更新视图的方法
这个和我的手机是否立即更新。
答案 1 :(得分:0)
您应该调用reloadRowsAtIndexPaths:withAnimation:来更新表格视图中的特定单元格。