如何为一组图像制作动画?

时间:2012-04-07 09:08:20

标签: iphone

如何为一组图像设置动画,但我有一大组图像,确切地说是300,

 Background.animationImages = [NSArray arrayWithObjects:    
                                  [UIImage imageNamed:@"001.jpg"],
                                  [UIImage imageNamed:@"002.jpg"],
                                  [UIImage imageNamed:@"003.jpg"],
                                  [UIImage imageNamed:@"004.jpg"],
                                  [UIImage imageNamed:@"005.jpg"],
                                  [UIImage imageNamed:@"006.jpg"],
                                  [UIImage imageNamed:@"007.jpg"],
                                  [UIImage imageNamed:@"008.jpg"],
                                  [UIImage imageNamed:@"009.jpg"],
                                  [UIImage imageNamed:@"010.jpg"],
                                  nil];

我不打算通过打字一直到300,这有解决方案吗? 我可以使用循环吗?

3 个答案:

答案 0 :(得分:5)

循环可能看起来像这样

NSMutableArray *animationImages = [[NSMutableArray alloc] initWithCapacity:300];

for (int i = 1; i <= 300; i++) {
    NSString *imageName = [NSString stringWithFormat:@"%03d.jpg", i];
    [animationImages addObject:[UIImage imageNamed:imageName]];
}

Background.animationImages = animationImages;

格式说明符%03d表示用0填充的整数,以使最小字段宽度为3.

<强> BUT

根据图片的大小,您可能会耗尽内存并终止您的应用。


旁注

对于Objective-C上的变量,

Background不是一个非常好的名称。惯例是用小写字母开始变量名,然后使用驼峰大小写。

答案 1 :(得分:4)

NSMutableArray *array = [NSMutableArray array];

for (int i = 0; i < 300; i++)
{
    NSString *imgName = [NSString stringWithFormat:@"%03d.jpg", i];
    UIImage *img = [UIImage imageNamed:imgName];
    [array addObject:img];
}

Background.animationImages = array;

答案 2 :(得分:1)

使用GIF图像播放动画。使用OpenGLES播放GIF文件是一种很好的做法,我相信这是播放动画的最佳方式。

关注Git链接:https://github.com/jamesu/glgif