2014-04-28 30 views
1

我将本地存储的640 * 100像素图像加载到UITableViewCell中。快速加载UITableView中的本地图像

的图像被从磁盘(按需)异步加载,存储到NSCache,然后放入UITableViewCellUIImageView主线程上。

当单元格快速滚动时,单元格消失之前,我遇到单元格闪烁并且某些图像未加载。 (滚动速度比加载速度更大)

我认为我不应该对电池重新使用之前,将不会出现细胞加载图像(滚动速度非常快的时候)

而且,它可能是有利于将图像“布局”存储在内存中,甚至是“预先绘制”的图像,但对于这两个问题我都没有很好的启发式方法。

我的单元格通过由UITableView数据源传入的数据对象加载它们的内容。我不希望数据源管理图像的提取,因为我发现代码更加简洁。但是现在我处于优化阶段,这是一个问题,因为单元格没有对所有者UITableView的引用,并且不知道滚动速度或其他指标。

有没有人解决过类似的问题?任何方式来解决这个问题?

+0

NSCache,SDWebimage,AFNetworking或其他许多图书馆,你希望为此做一些Google。 –

+1

请分享您创建单元格和加载图片的代码,这将是一个很好的起点来帮助您。 – sage444

+1

您是否尝试创建图像的低分辨率副本,以在用户滚动时加载,然后停止滚动加载全分辨率图像。 – sage444

回答

0

只需使用FastImageCache。它在内部使用ImageTable,并根据指定的格式在本表中存储thumnails 。