iphone table 实现动态加载图片

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;
   
}
风之境地 java-javascript 蘑菇街女装
posted @ 2011-03-23 13:26  sky7034  阅读(516)  评论(0编辑  收藏  举报
蘑菇街女装 货运专家