像FaceBook一样滚动UITableView

如果你看一下iOS的Facebook“App”,那么UITableView滚动速度非常快。 看起来应用程序正在将数据渲染到不同线程中的单元格中(而不是在主线程中)。

我也在开发类似的应用程序。 但我的应用滚动速度并不好。 我正在使用延迟加载图像。 即使这样,滚动速度也很差。

是否可以在不同的线程(不在主线程)中填充自定义UITableViewCell ????

感谢您的回复

假设您有每个UITableViewCell的以下任务

  1. 来自服务的GetData
  2. 从服务中获取图像
  3. 调整图像大小以匹配容器大小 (如果您获得的图像很大,则应该这样做)
  4. 显示您的数据

您应该在后台执行1,2,3

但你必须和你应该在主线程中做4。

不要为每个tableview单元创建一个单独的线程 ,然后再为任务1,2,3 创建一个单独的线程 。它真的浪费了资源。

那么如何在不为每件事创建线程的情况下完成所有这些背景。

使用GRAND CENTRAL DISPATCH (GCD)

阅读GCD。

如果你想快速解决方法就在这里

好。 任务4有两件事要做。

4(a)更新我们获得的日期表格单元格上的一些文本。 4(b)显示提取和resize的图像。

我在拿
14(a)

 dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ 1. DO 1 Here 2. Call a Call Back When your Task is Done example CallBack(Response); }); CallBack(Response *)response{ dispatch_async(dispatch_get_main_queue(), ^{ Do your 4(a) Here }); }