IPhone SDK:延迟加载scrollView图片的问题

时间:2011-07-26 05:44:44

标签: iphone uiscrollview uiimageview lazy-loading photos

我的应用程序涉及一个scrollView,其中包含用户通过修改后的ELCImagePicker选择的imageViews。所选图片通常是5 MB +的高质量照片,用户通常一次至少选择十几张照片。目前,我正在加载如下照片:

   -(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示例,但由于照片都非常大,因此滞后非常明显。

有没有办法顺利加载照片?

2 个答案:

答案 0 :(得分:0)

我遇到了类似的情况并通过创建NSOperation的自定义子类来处理它,它会将图像加载到一个单独的线程中,然后通过调用主线程上的方法来显示它们。

当图像加载时,我显示了一个UIActivityView

希望有所帮助。

答案 1 :(得分:0)

如果您使用scrollViewDidEndDecelerating,它只会在滚动视图停止时触发。我会使用scrollViewDidScroll。 (它也用在他们的例子中)