0

我正在 iOS 设备上创建一个应用程序,它将在背景上有一个动画,但基本上我不希望有多少图像可以上传到一个动画继承我设置的代码。

。H

#import <UIKit/UIKit.h>

@interface ViewController : UIViewController {
    IBOutlet UIImageView *animation;
}

@end

.m

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

-(void)viewDidLoad {



    animation.animationImages = [NSArray arrayWithObjects:

                                 [UIImage imageNamed:@"animatedbg1.gif"],

                                 [UIImage imageNamed:@"animatedbg2.gif"],

                                 [UIImage imageNamed:@"animatedbg3.gif"],

                                 [UIImage imageNamed:@"animatedbg4.gif"],

                                 [UIImage imageNamed:@"animatedbg5.gif"],

                                 [UIImage imageNamed:@"animatedbg6.gif"],

                                 [UIImage imageNamed:@"animatedbg7.gif"],

                                 [UIImage imageNamed:@"animatedbg8.gif"],

                                 [UIImage imageNamed:@"animatedbg9.gif"],nil],





    [animation setAnimationRepeatCount:0];

    animation.animationDuration = 2;

    [animation startAnimating];



} 

目前我有 9 张图片,但对于我的动画,我将有 155 张图片,所以这仍然有效:) 如果没有,你们知道我可以采取更好的路线吗?

4

1 回答 1

0

我认为您不会遇到任何严格的限制。但是,如果您使用太多图像,您可能会遇到内存限制。每张未压缩的图像有多大?这极大地影响了这一点。

当然,您可能知道第 3 方 iOS 应用程序的可用内存量没有保证。根据系统上正在运行的其他内容、用户在 Mobile Safari 中打开的网页数量等,将提供不同数量的可用内存。

您可能需要构建它并进行实验。

只是一个参考点。我有一个正在使用的应用程序animationImages,并且图像不是全屏(480 x 270 像素)。这些图像是 24 位 PNG,每个大约 70KB,经过压缩。

我发现我只能安全地使用其中的 10 个,而不必太担心被关闭以处理内存不足的情况。现在,当时我的目标是iPhone 3G,它现在已经很老了。但是,您可能仍希望支持 iPhone 3G 机型。

您当然可以在代码中查询设备型号,并为您的应用尝试加载的图像数量设置不同的默认值。如果您想要更通用的东西,在新的 iOS 设备发布时不会中断,您可以询问设备它有多少内存。然后,如果您检测到您在内存较少的设备上运行,您可以将您的应用程序编码为仅加载偶数编号的图像。

您还可以didReceiveMemoryWarning在 UIViewControllers 中实现,并在收到内存警告时选择卸载一些图像。这一切都假设您的动画是这样的,即删除图像只会使动画看起来不那么流畅,并且不会使其完全不起作用。

这是一些关于解释 iOS 内存警告的信息

于 2012-07-10T09:39:14.687 回答