2011-07-26 80 views
0

我的應用程序涉及一個scrollView,其中包含用戶通過修改的ELCImagePicker選擇的imageViews。所選圖片通常爲5 MB以上的高質量照片,用戶通常一次至少選擇至少一打圖片。目前,我正在加載的照片如下:IPhone SDK:延遲加載scrollView圖片的問題

-(void)loadViewWithPage: (int)page 
{ 
    if (page > 0 && page < [Album count]) { 
     [scrollView addSubview:[Album objectAtIndex:page]]; 
    } 
} 

-(void)scrollViewDidEndDecelerating:(UIScrollView *)sender 
{ 
    CGFloat pageWidth = scrollView.frame.size.width; 
    int page = floor((scrollView.contentOffset.x - pageWidth)/pageWidth) + 1; 

    [self loadViewWithPage:page + 1]; 
} 

其中相冊是照片存儲爲imageViews的地方。

當用戶不試圖打破應用程序並逐個滾動瀏覽照片時,此功能非常有用,但當他/她嘗試滾動瀏覽整個選擇時卻失敗了。除非用戶在每張照片後停止,否則頁面是空白的。我嘗試使用scrollViewDidScroll ala PageControl示例,但由於照片都非常大,所以延遲非常明顯。

有沒有任何方法可以順利加載照片?

+0

雖然不是這方面的專家,但沒有人認爲這是CATiledLayer的典型用例嗎? – Ved

回答

0

我有一個類似的情況,並通過創建NSOperation的自定義子類來處理它,該子類可以將圖像加載到單獨的線程中,然後通過在主線程上調用方法來顯示它們。

當圖像加載時,我顯示UIActivityView

希望有所幫助。

0

如果您使用scrollViewDidEndDecelerating它只會在滾動視圖停止時觸發。我會爲此使用scrollViewDidScroll。 (它也用於他們的例子)