Ios 为Tableview使用服务器端映像时减少滚动延迟

Ios 为Tableview使用服务器端映像时减少滚动延迟,ios,objective-c,xcode,uitableview,Ios,Objective C,Xcode,Uitableview,我目前有一个tableView,可以显示任意数量的结果。每行都有一个从服务器中提取的映像。假设服务器速度快,设备连接可靠,如何减少滚动列表时的延迟 我看了一下在后台线程上加载图像,这无疑改善了情况,但是当你上下滚动时,你可以清楚地看到图像的渲染 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { static NSStri

我目前有一个tableView,可以显示任意数量的结果。每行都有一个从服务器中提取的映像。假设服务器速度快,设备连接可靠,如何减少滚动列表时的延迟

我看了一下在后台线程上加载图像,这无疑改善了情况,但是当你上下滚动时,你可以清楚地看到图像的渲染

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
  {

      static NSString *CellIdentifier = @"Cell";
      UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

      if (cell == nil)
      {
          cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
      }

      if (tableView == self.searchDisplayController.searchResultsTableView)
      {
         cell.textLabel.text = [self.searchResult objectAtIndex:indexPath.row];
      }
      else
      {
         cell.textLabel.text = self.TableData[indexPath.row];
      }
      _ImageURL = self.ImageData[indexPath.row];
      dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0ul);
      dispatch_async(queue, ^
      {
          UIImage *image = [UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:_ImageURL]]];
          dispatch_sync(dispatch_get_main_queue(), ^
          {

              [[cell imageView] setImage:image];
              [cell setNeedsLayout];
          });
      });
      return cell;
 }
是否有任何方法可以改善这一点,或者这更可能是服务器速度和设备带宽的限制。我的服务器不是Facebook服务器,但它是一个不错的付费服务器,我用于其他应用程序


此外,由于将图像移动到后台任务,我注意到有时一行会丢失加载图像,对此有何想法?

我建议您使用
SDWebImage
库,从异步下载到缓存管理,一切都将为您处理。 这里是下载和文档

如果你不需要图像缓存,你也可以使用Facebook的


祝您好运。

我建议您使用
SDWebImage
库,从异步下载到缓存管理,一切都将为您处理。 这里是下载和文档

如果你不需要图像缓存,你也可以使用Facebook的


祝您好运。

我建议您使用
SDWebImage
库,从异步下载到缓存管理,一切都将为您处理。 这里是下载和文档

如果你不需要图像缓存,你也可以使用Facebook的


祝您好运。

我建议您使用
SDWebImage
库,从异步下载到缓存管理,一切都将为您处理。 这里是下载和文档

如果你不需要图像缓存,你也可以使用Facebook的


祝你好运。

你所做的完全错了。必须提供占位符并立即返回。稍后,您可以在获得图像后重新加载表。请进行搜索,因为这是所有问题中最常见的问题之一。你所做的完全错误。必须提供占位符并立即返回。稍后,您可以在获得图像后重新加载表。请进行搜索,因为这是所有问题中最常见的问题之一。你所做的完全错误。必须提供占位符并立即返回。稍后,您可以在获得图像后重新加载表。请进行搜索,因为这是所有问题中最常见的问题之一。你所做的完全错误。必须提供占位符并立即返回。稍后,您可以在获得图像后重新加载表。请进行搜索,因为这是所有问题中最常见的问题之一。