UIImageView在第一次显示时会导致延迟

时间:2011-03-23 15:53:01

标签: iphone caching uiview uiimageview

我有几个带有UIImageViews的UIViews。当我第一次显示视图 时,在显示之前会有明显的滞后(0.5秒左右)。再次显示一切正常。

我设法通过添加所有视图然后删除它们来解决这个问题。像这样:

[self performSelectorOnMainThread:@selector(addAndRemoveAllViews) 
                       withObject:nil 
                    waitUntilDone:NO];

该函数循环遍历所有视图,[addSubview:view]后跟[view removeFromSuperview]。这似乎会在未显示的情况下触发图像加载。

问题:

  1. 这对我来说都是一种解决方法。有没有更好的方法来处理这些类型的事情?
  2. 是否有可能在完成后获得回调或其他内容?我想在完成后运行动画。
  3. 更新

    图像是从NSData创建的,如下所示:

    [[UIImageView alloc] initWithImage:[UIImage imageWithData:rawData]];
    

1 个答案:

答案 0 :(得分:2)

图像看起来很可能比图像视图大。如果可能,将其缩小到图像视图所需的大小。

初始延迟是从存储中加载图像,之后您使用的是缓存版本,这就是它更快的原因。