iphone - 自定义 UITableViewCell 不会立即更新其 subview ,为什么?

标签 iphone objective-c uiview

我有一个自定义 UITableViewCell,其中包含标签和 imageView。如果 TableView 是可见 View 并且上面有一个单元格,如果我以编程方式更新标签的文本和 imageView 的图像并在执行此操作时记录日志,则在我在日志中看到标签的通知后大约需要 4 秒和要更新的图像。以下是发生的顺序和方式:

-加载包含表格和一个自定义单元格的 View

-使用 NSOperation(和队列)将文件写入磁盘

-当 NSOperation 完成写入文件时,它会触发 NSNotification (defaultCenter),告诉单元格的 View 更新标签和图像并且我设置 [self setNeedsDisplay]

-我在日志中看到单元已收到通知并完成了新值的设置

-~4 秒后,单元格的 View 实际更新。

什么给出了?

最佳答案

我的特定问题的解决方案取决于我更新数据的方式,我使用 NSOperation (和队列)发送通知,然后通知响应程序更新 View 。问题是 NSOperation 从技术上讲存在于另一个线程上,所以我应该做的是:

-使用 NSOperation(和队列)将文件写入磁盘

-当 NSOperation 完成写入文件时,它会触发 NSNotification (defaultCenter),响应者应该执行 SelectorOnMainThread 一个执行实际更新 View 的方法

这样做了吗,我的手机立即更新了。

关于iphone - 自定义 UITableViewCell 不会立即更新其 subview ,为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3065714/

相关文章:

iphone - 如何在 iPhone 中使用 XMPPFramework 创建 MultiUserChatRoom

iphone - 在 iOS 中创建一个连续的后台线程

objective-c - 与 FireBreath 一起使用时使 NSWindow 出现在前面

iPhone 隐藏状态栏将 View 向下移动 20 像素

objective-c - 避免 UIView 触摸延迟

iphone - 如何在 Xcode 4.2 的调试器中检查全局变量

ios - 如何获取蓝牙连接设备的电池电量

iphone - 使网站兼容 iPhone

ios - 'NSInvalidArgumentException',原因:'-[__ NSMallocBlock__ size]:无法识别的选择器已发送到实例0x2098a5c0'

objective-c - UIScrollView 内的 UIView 未获取触摸事件