처음에는 모든 셀을 기본 이미지로 설정할 수 있습니다. 그런 다음 콜백 위임을 사용하여로드 된 이미지를 갖도록 필요한 셀을 업데이트 할 수 있습니다. 현재 원격 영상 처리에는 JMImageCache을 사용하고 있습니다.
먼저 JMImageCache.h 및 JMImageCache.m 파일을 프로젝트에 추가하십시오. imageViewer라는 ImageViewer에서 이미지를 보유하고있는 CustomCell이라는 테이블에 사용자 정의 셀을 사용한다고 가정하고 CustomCell.h에서 JMImageCache.h 파일을 가져옵니다. 또한, 그것을 JMImageCacheDelegate하게있는 NSString의 이미지 URL 필드를 추가 할 CustomCell 인터페이스 업데이트 : 우리는 다음 셀의 이미지가 업데이트 될 수 있도록 이미지가 다운로드가 완료 될 때 처리 할 필요가
@interface CustomCell : UITableViewCell <JMImageCacheDelegate>
{
NSString *image_url;
...
}
// Also set image_url property fields so that it can be accessed from other files
. image_url을 합성하고 다음을 CustomCell.m에 추가하십시오.
- (void) cache:(JMImageCache *)c didDownloadImage:(UIImage *)i forURL:(NSString *)url
{
if ([url isEqualToString:image_url]) {
[self.imageViewer setImage:i];
[self setNeedsLayout];
}
}
그런 다음 인덱스 경로 기능에서 행의 셀에있는 tableView를 가지고있는 파일 : 당신이 더 많은 도움이 필요하면
CustomCell *cell = (CustomCell*)[tableView dequeueReusableCellWithIdentifier:@"CustomCell"];
if (cell == nil) {
NSArray *topLevelObjects = [[NSBundle mainBundle] loadNibNamed:@"CustomCell" owner:nil options:nil];
for (id currentObject in topLevelObjects) {
if ([currentObject isKindOfClass:[UITableViewCell class]]) {
cell = (CustomCell *)currentObject;
break;
}
}
}
[cell.imageViewer setImage:[UIImage imageNamed:"default.png"]];
//Code for getting string of URL you want for current cell called 'cell_image'
[cell setImage_url:cell_image];
[cell.imageViewer setImage:[[JMImageCache sharedCache] imageForURL:image_url delegate:cell]];
JMImageCache는 GitHub의에 간단한 예제가 있습니다.
왜 기본 이미지를 추가하지 않고 다른 이미지를 다운로드 할 때 상단에 그려야할까요? – ader