我正在使用SDWebImage用图像填充我的Tableview(下载并显示)。
我所做的是我在我的项目中包含了库,然后添加了其GitHub项目网站中提到的nessasry框架。
然后我添加了#import "UIImageView+WebCache.h"
导入和代理SDWebImageManagerDelegate
在cellForRowAtIndexPath
方法中,我添加了以下内容;
CustomCell * cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[CustomCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
[cell.animalImageView setImageWithURL: [NSURL URLWithString:animal.imageURL]
placeholderImage:[UIImage imageNamed:@"imagenotfound.png"]];
}
我认为这可以完成其项目网站
中描述的所有内容UIImageView类别,将Web图像和缓存管理添加到 Cocoa Touch框架异步图像下载器异步 具有自动缓存到期处理的内存+磁盘映像缓存A. 保证不会多次下载相同的URL A. 保证不会一次又一次地重试伪造的URL 表演!
但是,当我在手机上运行应用程序时,滚动速度很慢。然后当我向上和向下滚动一段时间时,它几乎卡住(但它仍然滚动)。
有人可以通过我的代码,并告诉我我错过了什么。几天来我一直坚持这个问题。帮助
}
答案 0 :(得分:1)
以下是我的想法: 你在使用[tableView dequeueReusableCellWithIdentifier:MyIdentifier]; 方法还是你为每一行创建一个新的单元格? 电池没有自动释放。 图像和默认图像有多大?
答案 1 :(得分:1)
您应该将指定图像语句放在检查nil条件之外
if (cell == nil)
{
cell = [[CustomCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
[cell.animalImageView setImageWithURL: [NSURL URLWithString:animal.imageURL]
placeholderImage:[UIImage imageNamed:@"imagenotfound.png"]];
答案 2 :(得分:0)
此外,您可以尝试声明NSMutableArray并将UIImage存储在那里,因此滚动时不必下载两次