我正在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张图片,所以它仍然可以工作:)如果不是,你们知道我可以采取更好的路线吗?
答案 0 :(得分:0)
我不认为你会遇到任何严格的限制。但是,如果使用太多图像,则可能会遇到内存限制。每个图像的压缩程度有多大?这极大地影响了这个。
当然,您可能知道第三方iOS应用程序没有可保证的内存容量。根据系统上正在运行的其他内容,用户在Mobile Safari中打开了多少个网页等,可以使用不同数量的可用内存。
您可能需要构建它并进行实验。
只是一个参考点。我有一个使用animationImages
的应用程序,图像不是全屏(480 x 270像素)。图像是24位PNG,每个约70KB,压缩。
我发现我只能安全地使用其中的大约10个,而不必担心关闭以处理低内存条件。现在,当时我的目标是 iPhone 3G ,现在已经相当老了。但是,您可能仍想支持iPhone 3G型号。
您当然可以query the device model in your code,并为您的应用尝试加载的图片设置不同的默认值。如果你想要一些更通用的东西,那么在新的iOS设备发布时不会破坏,你可以ask the device about how much memory it has。然后,如果您检测到您在内存较少的设备上运行,则可以将应用程序编码为仅加载偶数图像。
您还可以在UIViewControllers中实现didReceiveMemoryWarning
,并在收到内存警告时选择卸载部分图像。这一切都假设您的动画是这样的,即删除图像只会使动画看起来不那么平滑,并且不会使它完全失去功能。
Here is some information on interpreting iOS memory warnings