2012-06-15 3 views
1

잡지 응용 프로그램이 있는데 알고 싶습니다. UIView 및 UIImages를 미리로드하는 방법이 있습니까?UIView 및 UIImage 사전로드

내 뷰 구조 :

MagazineView 
    -> pageView 
    -> imageContainerView 
     -> image 
    -> imageContainerView 
     -> image 
    -> textView 
    -> pageView 
etc... 

그래서 내 질문입니다 - 뷰를 볼 수 있습니다 전에 어떻게 이미지를 미리로드? 3 또는 5 페이지 캐시를 만들고보기를로드하기위한 스레드를 만들고 싶습니다. 어떤 아이디어?

답변

0

'이미지 미리로드'는 실제 사용되기 전에 이미지를 다운로드한다는 의미로 표시 할 때 지연이 없다고 가정합니다.

[NSData dataWithContentsOfURL:]을 사용하여 먼저 이미지를 다운로드 한 다음 NSData 인스턴스에서 writeToFile:atomically:을 사용하여 파일에 데이터를 덤프하거나 나중에 재사용 할 수 있도록 NSData에 힙에 데이터를 보관하십시오.

그런 다음 필요할 때 [UIImage imageWithContentsOfFile] 또는 [UIImage imageWithData:]을 사용하여 UIImage를 만들 수 있습니다.

캐시를 파일에 저장하는 경우 해당 파일을 문서 폴더가 아닌 캐시 폴더에 저장하거나 iCloud와 동기화 할 때 건너 뛸 수있는 속성으로 표시하십시오. 그렇지 않으면 앱이에 의해 거부됩니다 사과.

또한 이러한 이미지를 다운로드하는 데 시간이 오래 걸리거나 실패 할 수 있습니다. 이 모든 작업은 백그라운드 스레드에서 주 스레드를 차단하지 않는 방식으로 수행해야하며, 응용 프로그램이 고정되어 있지 않고 다운로드가 실패하거나 캐시가 플러시되는 경우를 대비 한 시각적 표시기가 있어야합니다 (저장 한 경우 파일에 대한 이미지)

+0

아니요 다운로드 한 이미지가 모두 있습니다 ... 미리로드한다는 것은 이미지를 그리는 것이지만 배경을 의미합니다. 회신에 대한 Thx ... –

0

설명 된 J_D 이미지를로드 한 후에는 pageView에 넣고 숨김을 YES로 설정하십시오. 페이지를 전환 할 때마다 새로운 이미지를 미리로드하고 이미 다운로드 한 이미지를 표시하는 일부 메소드를 호출하십시오 (NO로 설정 됨) .--). 희망이 있으면 문제를 해결하는 데 도움이 될 것입니다 ...