以编程方式使用要动画的图像填充数组

时间:2012-05-30 18:49:23

标签: iphone objective-c ios arrays animation

我的资源文件夹中有50个图像的文件夹(称为“beeanim”)。我想用这些图像填​​充数组,然后用图像运行动画。每张图片都被命名为bee1bee2 ......... bee50

当我在xcode中运行应用程序时,我在控制台中收到错误消息:

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[__NSArrayM insertObject:atIndex:]: object cannot be nil'

这让我相信我可能没有正确引用文件名但我不知道怎么做比我已经有的。我很感激任何帮助。这是我的代码:

-(void) createBeeImage {

    NSString *fileName; 
    NSMutableArray *imageArray = [[NSMutableArray alloc] init];
    for(int i = 1; i <= 51; i++) {
        fileName = [NSString stringWithFormat:@"beeanim/bee%d.png", i];
        [imageArray addObject:[UIImage imageNamed:fileName]];
    }
    UIImageView * imgView = [[UIImageView alloc] initWithFrame:
                             CGRectMake(215, 250, 174, 80)];
    imgView.animationImages = imageArray;
    imgView.animationDuration = 2;
    imgView.animationRepeatCount = 0;
    imgView.contentMode = UIViewContentModeBottomLeft;
    [self.view addSubview:imgView];
    [imgView startAnimating];


}

2 个答案:

答案 0 :(得分:3)

for(int i = 1; i <= 51; i++)

i的最后一个值为51,因此根据您的描述不存在这样的图像,因此

[UIImage imageNamed:]返回nil,无法插入NSMutableArray

答案 1 :(得分:0)

如果图片已与您的应用程序捆绑在一起,则不需要文件夹名称。试试吧:

for(int i = 1; i <= 51; i++) {
    fileName = [NSString stringWithFormat:@"bee%d.png", i];
    [imageArray addObject:[UIImage imageNamed:fileName]];
}