UIimage动画一定数量

时间:2012-07-10 07:42:11

标签: ios animation uiimage xcode4.3 animated

我正在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张图片,所以它仍然可以工作:)如果不是,你们知道我可以采取更好的路线吗?

1 个答案:

答案 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