效果:
等到滑动到相应的cell的时候,异步下载图片
并且等到图片下载完毕,再更新cell内的uiimage
谢谢
------解决方案--------------------
大概如下:
@protocol NSGetResourceDelegate
-(void)onResponse:(NSData *)data;
-(void) onError:(NSString *) descr;
@end
@interface GDUIImageControl:UIButton<NSGetResourceDelegate>
{
}
-(void) setResource:(NSString*)url;
@end
-(void) setResource:(NSString*)url
{
//调用获取资源模块
}
-(void)onResponse:(NSData *)data
{
UIImage *image = nil;
if (data) {
image = [UIImage imageWithData:data];
}
if (image)
{
[self setImage:image];
}
}
-(void) onError:(NSString *) descr
{
//
}
------解决方案--------------------
自己管理 http 请求,如果你有过 这方面的经验,并且能够自己控制好 线程并且不错乱,那就可以自己去写一个,不过代码量还是有点多的。不推荐
我推荐的是,还是调用一个开源的框架,然后自己对里面的逻辑进行修改,毕竟也不是很难的东西。
其实你说的 刷新 reloadData 其实感觉没有必要。。。因为SDWebImage是下载后直接缓存到本地,然后直接调用。刷新tableView在ipod4这种内存,芯片都不行的机器上会 有点卡。
------解决方案--------------------
也可以这样。下载完成后,调用 - (void)reloadRowsAtIndexPaths:(NSArray *)indexPaths withRowAnimation:(UITableViewRowAnimation)animation NS_AVAILABLE_IOS(3_0);
这个方法,单独刷新一行