【问题标题】:IPhone SDK: Problem with lazy loading scrollView picturesiPhone SDK:延迟加载scrollView图片的问题
【发布时间】:2011-07-26 05:44:44
【问题描述】:

我的应用程序包含一个滚动视图,其中包含用户通过修改后的 ELCImagePicker 选择的图像视图。选择的图片通常是 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 示例,但由于照片都很大,因此滞后非常明显。

有什么方法可以顺利加载照片吗?

【问题讨论】:

  • 虽然不是这方面的专家,但有人认为这是 CATiledLayer 的典型用例吗?

标签: iphone uiscrollview uiimageview lazy-loading photos


【解决方案1】:

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

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

希望对您有所帮助。

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-23
      • 2012-08-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多