2013-06-12 5 views
1

테이블 뷰에서 이미지를 표시하기 위해 지연로드를 사용하고 있습니다. 하지만 모든 셀에 여러 이미지가있는 테이블 뷰를 만들어야합니다. 스크롤 할 수 있습니다. 모든 이미지는 서버에서만로드됩니다 테이블 스크롤을 위해 지연없이 어떻게 만들 수 있습니까? 여기에 대한 튜토리얼이 있습니까Lazy loading 각 셀에 여러 이미지가있는 UITableView

+1

이 셀의 필요에있는 UIImageView의 작성 및 이미지의 비동기 다운로드에 대한 https://github.com/rs/SDWebImage를 사용 알고 참조하십시오. –

답변

2

이 코드를 사용해보십시오. SDWebImage. 서버에서 이미지를 다운로드하여 장치 캐시에 저장합니다. 또한 캐시에 저장하지 않으려면 AFNetworking을보십시오.

+0

afnetworkings uiimageview 카테고리에서 캐시를 사용합니다. – amar

+0

AFNetworking에서 NSURLCacheStorageNotAllowed 옵션을 사용할 수 있습니다. 그것을 확인하십시오. – Divyu

+0

당신의 ans 명시 적으로 AFNetworking 캐싱을 사용하지 않는 것을 의미합니다. 내가 체크 아웃으로 내가 그것을 해제하고 업데이트 된 이미지 등을 표시 캐싱을 가능하게 많은 비틀기를 다했는지 우려하고있다. – amar

2

다른 옵션이 있습니다. GCD (Grand Central Dispatch) 사용

예제 코드 :

// Get the filename to load. 
    NSString *imageFilename = [imageArray objectAtIndex:[indexPath row]]; 
    NSString *imagePath = [imageFolder stringByAppendingPathComponent:imageFilename]; 

    [[cell textLabel] setText:imageFilename]; 

    dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0ul); 

    dispatch_async(queue, ^{ 
     UIImage *image = [UIImage imageWithContentsOfFile:imagePath]; 

     dispatch_sync(dispatch_get_main_queue(), ^{ 
      [[cell imageView] setImage:image]; 
      [cell setNeedsLayout]; 
     }); 
    }); 

는 여러 개의 이미지를 보여주는 동일한을 사용합니다. 이것을 사용하면 테이블 뷰를로드하는 성능이 확실히 향상됩니다.

this보다 약 GCD

+0

@ Vidya Vasudev : 내 게시물 않았다 도와 줘? – Sravan

+0

SDWebImage보다 좋습니다. 로드 된 이미지의 자리 표시 자와 같은 종횡비가 아닌 경우 이상하지 않습니다. 0 종속성. 캐싱이 필요하지 않습니다. 이미지가로드되는 동안 앱을 잠그지 않는 솔루션이 필요합니다. 감사! – soemarko

관련 문제