当前位置: 代码迷 >> Iphone >> tableview 等图片上载完再更新cell内的uiimage
  详细解决方案

tableview 等图片上载完再更新cell内的uiimage

热度:195   发布时间:2016-04-25 06:07:15.0
tableview 等图片下载完再更新cell内的uiimage?
效果:

等到滑动到相应的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
{
//
}
------解决方案--------------------
引用:
SDWebImage, ASYImage都可以实现这个功能 .


自己管理 http 请求,如果你有过 这方面的经验,并且能够自己控制好 线程并且不错乱,那就可以自己去写一个,不过代码量还是有点多的。不推荐

我推荐的是,还是调用一个开源的框架,然后自己对里面的逻辑进行修改,毕竟也不是很难的东西。

其实你说的 刷新 reloadData 其实感觉没有必要。。。因为SDWebImage是下载后直接缓存到本地,然后直接调用。刷新tableView在ipod4这种内存,芯片都不行的机器上会 有点卡。




------解决方案--------------------
也可以这样。下载完成后,调用 - (void)reloadRowsAtIndexPaths:(NSArray *)indexPaths withRowAnimation:(UITableViewRowAnimation)animation NS_AVAILABLE_IOS(3_0);
这个方法,单独刷新一行
  相关解决方案