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;
- }
原始碼:http://easymorse-iphone.googlecode.com/svn/trunk/WelcomePavilion/
小結:iPhone學習之路 Table實現動態載入圖片的內容介紹完了,希望本文對你有所協助!
本文來自:http://wangjun.easymorse.com/?p=908