Iphone 整个应用程序中的单个动画UIImageView背景

Iphone 整个应用程序中的单个动画UIImageView背景,iphone,ios,ios6,Iphone,Ios,Ios6,我已经阅读了关于这个话题的所有资料,但仍然不确定最好的方法。我有一个沉重的UIImageView,它使用一组fatUIImages作为动画循环。此UIImageView用作应用程序中每个屏幕的背景。(客户的要求,不是我的,所以不要讨厌。)我们已经优化了png文件,使其尽可能小,但它仍然是一个相当重的负载 我读过几篇关于UIImage如何在缓存中搜索该名称的现有图像(例如)的文章,但这似乎没有发生。我在这里也读过关于单例和在appdelegate中实例化的内容,但我不确定这两种方法是否正确 在应用

我已经阅读了关于这个话题的所有资料,但仍然不确定最好的方法。我有一个沉重的
UIImageView
,它使用一组fat
UIImages
作为动画循环。此
UIImageView
用作应用程序中每个屏幕的背景。(客户的要求,不是我的,所以不要讨厌。)我们已经优化了png文件,使其尽可能小,但它仍然是一个相当重的负载

我读过几篇关于
UIImage
如何在缓存中搜索该名称的现有图像(例如)的文章,但这似乎没有发生。我在这里也读过关于单例和在appdelegate中实例化的内容,但我不确定这两种方法是否正确

在应用程序的整个生命周期内加载一次
UIImageView
并在每个viewcontroller的后台使用它的最佳方式是什么?顺便说一句,因为加载需要几秒钟,所以我将在应用程序开始时添加一个“加载”页面,该页面使用一个静态图像和一个活动指示器

另外,我不太熟悉测试和性能工具。我应该使用哪一个来测试性能,并确保这是导致整个应用程序出现犹豫的原因


提前为noob问题道歉-我通常根本不会问问题,但有时,就像在这种情况下,我甚至不知道从哪里开始研究。

我对自己很满意。我使用了AppDelegate技术,它工作得很好。我在AppDelegate中声明了UIImageView属性,然后将图像代码添加到其getter:

- (UIImageView *)backgroundImageView {
    if (!_backgroundImageView) {
        NSMutableArray *tempArray = [NSMutableArray arrayWithCapacity:150];
        for (int imageNum = 0; imageNum < 150; imageNum++) {
            [tempArray addObject:[UIImage imageNamed:[NSString stringWithFormat:@"image_00%03i.png",imageNum]]];
        }
        _backgroundImageView = [[UIImageView alloc] initWithImage:[UIImage animatedImageWithImages:tempArray duration:4.0]];
    }
    return _backgroundImageView;
}
这允许我在每个viewDidLoad方法中添加一行:

[HelperClass placeBackgroundImageUnderView:self.view];
问题是,仅使用UIImage就可以缓存整个内容并加快加载时间。但似乎每隔一段时间图像都必须重新加载-内存问题?因此,这允许我通过实例化对象一次并使用相同的对象来对其进行更多的控制,同时还可以将该对象设置为nil,以便在需要时释放内存

自从添加它以来,整个应用程序的加载速度大大加快。我添加了一个额外的加载屏幕,上面有一个活动指示器,用于初始加载(也可以很好地工作),之后的一切都是即时的

[HelperClass placeBackgroundImageUnderView:self.view];