0

如何为一组图像设置动画,但我有一大组图像,确切地说是 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,有解决方案吗?我可以为此使用循环吗?

4

3 回答 3

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。

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


边注

Background对于 Objective-C 上的变量来说,这不是一个很好的名称。惯例是变量名以小写字母开头,然后使用驼峰式大小写。

于 2012-04-07T09:14:36.723 回答
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;
于 2012-04-07T09:13:11.227 回答
1

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

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

于 2012-04-07T12:20:01.143 回答