我对自己很满意。我使用了AppDelegate技术,它的工作非常漂亮。我宣布在AppDelegate中一个UIImageView属性,然后将图像代码添加到其吸气剂:
- (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;
}
这也让我杀死applicationDidReceiveMemoryWarning的对象。
然后我创建了一个辅助类,我可以跳进我的所有的UIViewController类:
+ (void)placeBackgroundImageUnderView:(UIView *)masterView {
myAppDelegate *appDelegate = (myAppDelegate *)[[UIApplication sharedApplication] delegate];
//Correct for shrinkage
appDelegate.backgroundImageView.frame = masterView.frame;
[masterView addSubview:appDelegate.backgroundImageView];
[masterView sendSubviewToBack:appDelegate.backgroundImageView];
}
这让我补充一条线在每个viewDidLoad方法:
[HelperClass placeBackgroundImageUnderView:self.view];
事情是,只使用UIImage应该缓存整个事情,并加快加载时间。但似乎时不时的图像将不得不重新加载 - 内存问题?因此,这允许我通过实例化对象一次并使用同一对象来控制它,同时也可以将该对象设置为零,以便在需要时释放内存。
由于添加它,整个应用程序加载速度更快。我添加了一个额外的负载屏幕,并为该初始负载提供了一个活动指示器(也可以很好地工作),并且之后的所有内容都很快乐。