当前位置: 代码迷 >> Iphone >> iPhone table 兑现动态加载图片的教程
  详细解决方案

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

热度:112   发布时间:2016-04-25 06:30:24.0
iPhone table 实现动态加载图片的教程

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

  相关解决方案