ios - 下载单元格图像后 UITableView 滚动缓慢

标签 ios objective-c uitableview uiimage

我正在尝试从服务器下载一些缩略图,然后在每个单元格中显示它们:

// displaying image...
dictionary = [newsFeed objectAtIndex:indexPath.row];
UIImage *image = [UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:[dictionary objectForKey:@"image"]]]];
cell.imageView.image = [image imageScaledToSize:CGSizeMake(55, 55)];    

但是下载显示图片后,表格 View 滚动缓慢!

最佳答案

主要问题是 [NSData dataWithContentsOfURL:] 方法是一个同步 请求。它会阻塞正在运行的线程,直到请求完成。

如果你在主线程上运行它,你应该避免这种类型的交互。该线程将被卡住,用户将感到失望;)

对此您有很多解决方案。一个简单的方法是使用第三个库,如 SDWebImageAFNetworking .

两者都有围绕 UIImageView 类的类别,允许以简单的方式使用它们。例如,使用 UIImageView+AFNetworking 你应该像下面这样:

[cell.imageView setImageWithURL:yourURL placeholderImage:yourPlaceholderImage];

关于ios - 下载单元格图像后 UITableView 滚动缓慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16530987/

相关文章:

ios - 奇怪的问题 - "The fetched object at index x has an out of order section name"

ios - 在没有 prepareForSegue 的情况下推送到另一个 View Controller

android - CCPointFromString 正在崩溃 :( in cocos2dx 2. 0.4

c# - 在 UITableView 的编辑模式下允许多重选择

javascript - React Native 中显示 Activity 指示器时如何锁定所有屏幕的触摸?

iOS Swift App AVPlayerController 关闭不在外部显示器上工作

iphone - 验证 Controller 问题

ios - 带分页的 UIScrollView + 显示部分上一页/下一页

swift - 在 UITableView w/AZ 部分中显示数据列表时出错

ios - tableViewCell 按钮上的线程 1 fatal error