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; }

你可能感兴趣的:(image,cache,table,url,iPhone,Path)