注册 登录
主题 : [分享]UITableView异步加载图片+缓存(非常简洁)
级别: 新手上路
UID: 37452
精华: 0
发帖: 37
可可豆: 283 CB
威望: 253 点
在线时间: 140(时)
注册时间: 2010-11-09
最后登录: 2016-02-17
0 楼:  发表于: 2012-05-10 09:37    发自: Web Page
来源于 iPhone类代码 分类

[分享]UITableView异步加载图片+缓存(非常简洁)    (在iOS代码库中浏览本帖)

今天公司没什么事做,自己写了个UITableView异步加载图片+缓存   方便大家使用




此为arc版本   如果不是arc项目,请手动添加"relese"
重新修改,加入sbjson库,刚才忘了加了!


1.将WQTableViewController.h和WQTableViewController.m拖入项目中


2.在自己的viewController中继承WQTableViewController并加入WQTableViewDelegate


例如:
#import "WQTableViewController.h"


@interfaceViewController : WQTableViewController<WQTableViewDelegate>
3.在自己的viewController.m中的- (void)viewDidLoad中配置参数如下:


wqTable=mytable ;//("mytable 为自己的table")
tableDataArray = myTableDataArray;//("myTableDataArray"为自己table显示数据的数组)
delegate=self;


4.在自己的viewController.m中加入code:
-(void)cellImageDidLoad:(NSIndexPath *)indexPath image:(UIImage *)image
{
    UITableViewCell *cell = [wqTable cellForRowAtIndexPath:indexPath];
    cell.imageView.image = image;
}


5.最后在
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 中图片的设置为




NSString*imageName = [[[tableDataArrayobjectAtIndex:indexPath.row] valueForKey:KidKey] stringByAppendingString:@".temp"];



NSString*imageDataPath = [NSHomeDirectory() stringByAppendingPathComponent:[@"Library/Caches/"stringByAppendingString:imageName]];
    UIImage *image = [UIImage imageWithData:[NSData dataWithContentsOfFile:imageDataPath]];
    if (image) {
        cell.imageView.image = image;
    }
    else {
        cell.imageView.image = [UIImage imageNamed:@"Placeholder.png"];
//placeholder为在未加载完成加载图片时显示的默认图片
    }




注意:在WQTableViewController.h 有2个#define 参数 需要更具自己的实际情况修改


如有更好的建议或者问题请发送E-mail至359794@qq.com
转发请注明出处谢谢!!!





[ 此帖被wq87410020在2012-05-10 09:49重新编辑 ]

附件: WQTableViewController.zip (169 K) 下载次数:2997
关键词: table 图片 View
级别: 精灵王

状态: 连续签到 - [1天]
UID: 25351
精华: 0
发帖: 1435
可可豆: 11942 CB
威望: 11921 点
在线时间: 1470(时)
注册时间: 2010-07-21
最后登录: 2018-06-27
1 楼:  发表于: 2012-05-10 09:39    发自: Web Page
下来先看下,呵呵。
做什么要趁早。有想法了就要去做。
级别: 精灵王

状态: 连续签到 - [2天]
UID: 35043
精华: 0
发帖: 1566
可可豆: 10290 CB
威望: 10290 点
在线时间: 3548(时)
注册时间: 2010-10-23
最后登录: 2017-06-15
2 楼:  发表于: 2012-05-10 11:28    发自: Web Page
再科普一下 object-c开发中混合使用或不使用ARC
级别: 精灵王

UID: 103898
精华: 1
发帖: 1406
可可豆: 13025 CB
威望: 12885 点
在线时间: 229(时)
注册时间: 2011-11-11
最后登录: 2018-11-14
3 楼:  发表于: 2012-05-10 16:32    发自: Web Page
谢谢各位,学习了~~
级别: *
UID: 90412
精华: *
发帖: *
可可豆: * CB
威望: * 点
在线时间: (时)
注册时间: *
最后登录: *
4 楼:  发表于: 2012-05-11 09:53    发自: Web Page

级别: 侠客
UID: 59052
精华: 0
发帖: 58
可可豆: 391 CB
威望: 391 点
在线时间: 219(时)
注册时间: 2011-03-23
最后登录: 2018-05-17
5 楼:  发表于: 2012-05-11 10:56    发自: Web Page
谢谢分享
级别: 精灵王
UID: 28423
精华: 0
发帖: 746
可可豆: 5404 CB
威望: 5464 点
在线时间: 1149(时)
注册时间: 2010-08-23
最后登录: 2018-11-13
6 楼:  发表于: 2012-05-11 13:15    发自: Web Page
有相关需求, 用的 https://github.com/enormego/EGOImageLoading 楼主有空也可以看看
级别: 骑士
UID: 30639
精华: 0
发帖: 256
可可豆: 2282 CB
威望: 2282 点
在线时间: 295(时)
注册时间: 2010-09-14
最后登录: 2014-09-30
7 楼:  发表于: 2012-05-11 13:40    发自: Web Page
学习!!!!!!!!
级别: 新手上路
UID: 119693
精华: 0
发帖: 4
可可豆: 40 CB
威望: 40 点
在线时间: 10(时)
注册时间: 2012-01-18
最后登录: 2016-07-05
8 楼:  发表于: 2012-05-11 16:10    发自: Web Page
谢谢楼主分享~学习ing
级别: 精灵王

UID: 92867
精华: 0
发帖: 794
可可豆: 3040 CB
威望: 4930 点
在线时间: 1311(时)
注册时间: 2011-09-14
最后登录: 2018-10-15
9 楼:  发表于: 2012-05-11 16:18    发自: Web Page
谢谢分享

CocoaChina社区转载内容已尽可能注明出处,如未能核实来源或转发内容图片有权利瑕疵的,请及时联系社区进行修改或删除【联系方式QQ : 3442093904 邮箱:support@cocoachina.com】文章内容为作者独立观点,不代表CocoaChina社区立场。版权归原作者所有,如申请授权请联系作者,因文章侵权CocoaChina社区不承担任何法律及连带责任。

描述
快速回复

关注本帖(如果有新回复会站内信通知您)

发帖、回帖都会得到可观的积分奖励。查看论坛积分规则

按"Ctrl+Enter"直接提交
    顶部