Ios 为Tableview使用服务器端映像时减少滚动延迟
我目前有一个tableView,可以显示任意数量的结果。每行都有一个从服务器中提取的映像。假设服务器速度快,设备连接可靠,如何减少滚动列表时的延迟 我看了一下在后台线程上加载图像,这无疑改善了情况,但是当你上下滚动时,你可以清楚地看到图像的渲染Ios 为Tableview使用服务器端映像时减少滚动延迟,ios,objective-c,xcode,uitableview,Ios,Objective C,Xcode,Uitableview,我目前有一个tableView,可以显示任意数量的结果。每行都有一个从服务器中提取的映像。假设服务器速度快,设备连接可靠,如何减少滚动列表时的延迟 我看了一下在后台线程上加载图像,这无疑改善了情况,但是当你上下滚动时,你可以清楚地看到图像的渲染 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { static NSStri
- (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的
祝你好运。你所做的完全错了。必须提供占位符并立即返回。稍后,您可以在获得图像后重新加载表。请进行搜索,因为这是所有问题中最常见的问题之一。你所做的完全错误。必须提供占位符并立即返回。稍后,您可以在获得图像后重新加载表。请进行搜索,因为这是所有问题中最常见的问题之一。你所做的完全错误。必须提供占位符并立即返回。稍后,您可以在获得图像后重新加载表。请进行搜索,因为这是所有问题中最常见的问题之一。你所做的完全错误。必须提供占位符并立即返回。稍后,您可以在获得图像后重新加载表。请进行搜索,因为这是所有问题中最常见的问题之一。