iPhone table 实现动态加载图片的教程

本文介绍了一种在iOS应用中动态加载列表项的方法,通过在列表加载时分批请求并显示部分数据,避免了大量图片加载导致的卡顿,提升了用户体验。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

from:http://www.cocoachina.com/bbs/read.php?tid=92444

iPhone在加载列表时,如果每个等待把所有列表中的数据都加载完在显示相关内容,如果列表中有一些比较大的图片,加载的时间比较长,那么给用户的效果就很差了,下面详细是一种实现动态加载图片的办法:


- (UITableViewCell *)tableView:(UITableView *)tableView 
         cellForRowAtIndexPath:(NSIndexPath *)indexPath { 
    UITableViewCell* cell = [tableView dequeueReusableCellWithIdentifier:@"tag"]; 
    if (cell==nil) { 
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle 
                                       reuseIdentifier:@"tag"] autorelease]; 
    }    
    //表格设计 
    NSDictionary* one = [array objectAtIndex:indexPath.row]; 
    cell.textLabel.text = [one objectForKey:@"title"]; 
    cell.detailTextLabel.text = [one objectForKey:@"content"]; 
     [NSThread detachNewThreadSelector:@selector(updateImageForCellAtIndexPath:) toTarget:self withObject:indexPath]; 
    return cell; 
}
- (void)updateImageForCellAtIndexPath:(NSIndexPath *)indexPath 

    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; 
    UIImage *image = [self getImageForCellAtIndexPath:indexPath]; 
    UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:indexPath]; 
    [cell.imageView performSelectorOnMainThread:@selector(setImage:) withObject:image waitUntilDone:NO]; 
    [image release]; 
    [pool release]; 

-(UIImage *)getImageForCellAtIndexPath:(NSIndexPath *)indexPath 

    id path = [[array objectAtIndex:indexPath.row] objectForKey:@"image"]; 
    NSURL *url = [NSURL URLWithString:path]; 
    NSData *data = [NSData dataWithContentsOfURL:url]; 
    UIImage *image = [[UIImage alloc] initWithData:data cache:NO]; 
    return image
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值