TableView에서 이미지 로드 지연 정보

1395 단어
자주 우리는tableView로 많은 항목을 표시합니다. 때로는 그림을 표시해야 하지만 한 번에 서버에서 모든 그림을 가져와서 사용자에게 데이터를 낭비하고 서버에도 부담입니다.사용자가 항목을 훑어보려고 할 때 그림을 불러오는 것이 가장 좋다.

아래와 같은 방법을 다시 쓰다

-(void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell    
forRowAtIndexPath:(NSIndexPath *)indexPath
{
 // 
UIImage *image = [self getImageForCellAtIndexPath:indexPath]; 
[cell.imageView setImage:image];
}

이것은 시간 지연 불러오는 문제를 해결했지만 네트워크 속도가 느리거나 그림이 크면 프로그램이 사용자에 대한 응답을 잃을 수 있습니다.
그 이유는
  UIImage *image = [self getImageForCellAtIndexPath:indexPath]; 

이 방법은 이 메서드를 처리하는 데 많은 시간이 걸릴 수 있습니다.그래서 사용자에 대한 응답을 잃었습니다.그래서 이 방법을 제시해야 한다.
-(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];
[pool release];
}

그리고 이 일을 하기 위해 라인을 새로 개설하다
- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell 
forRowAtIndexPath:(NSIndexPath *)indexPath
{
  [NSThread detachNewThreadSelector:@selector(updateImageForCellAtIndexPath:)
 toTarget:self withObject:indexPath];
}

좋은 웹페이지 즐겨찾기