2011-07-26 37 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。 (它也用于他们的例子)