代码之家  ›  专栏  ›  技术社区  ›  Shizam

自定义UITableViewCell不会立即更新其子视图,为什么?

  •  2
  • Shizam  · 技术社区  · 14 年前

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

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

    -使用和nsoperation(和queue)将文件写入磁盘

    -当nsOperation完成文件的写入后,它将触发一个nsnotification(defaultcenter),通知单元格的视图更新标签和图像。 我设置[自我设置需要显示]

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

    -大约4秒后,手机的视图会更新。

    给出了什么?

    2 回复  |  直到 14 年前
        1
  •  4
  •   Shizam    14 年前

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

    -使用和nsoperation(和queue)将文件写入磁盘

    -完成nsOperation写入文件后,将触发nsnotification(defaultcenter)。 然后响应程序应执行MSelectorOnMainthread,执行视图的实际更新的方法。

    我的手机立刻更新了吗?

        2
  •  0
  •   progrmr    14 年前

    你应该打电话 reloadRowsAtIndexPaths:withAnimation: 更新表视图中的特定单元格。