UIImageView动画导致崩溃

时间:2011-09-15 03:04:21

标签: iphone objective-c uiimageview

我有一个UIAnimation视图,可以播放一组PNG图像作为动画。大约有200帧,总大小约为8 MB。动画在模拟器和iPhone 4上运行得很好,但是当我在iPhone 3GS上测试时,应用程序因动画而崩溃。

我已尝试使用UIImage imageNamed:,但我读到使用imageWithData可能会更快,所以我有这个:

            NSString *imageName=[NSString stringWithFormat:@"fishBg_%i.png", i];
            NSString *fileLocation = [[NSBundle mainBundle] pathForResource:imageName ofType:nil];
            NSData *imageData = [NSData dataWithContentsOfFile:fileLocation];
            [animationArray addObject:[UIImage imageWithData:imageData]];

我的问题是什么?当我将帧数减少到大约100时,动画播放,应用程序不会崩溃。但是当我将帧数提高到200时,应用程序崩溃了。有什么更好的方法呢?动画是一个透明图像的PNG序列,所以我不确定我是否能够将其转换为视频并保持其​​透明度并在其下放置其他图像。

1 个答案:

答案 0 :(得分:2)

由于我们需要在这里节省尽可能多的内存(假设这就是你崩溃的原因),尝试更明确地管理内存:

NSString *imageName=[[NSString alloc] initWithFormat:@"fishBg_%i.png", i];
NSString *fileLocation = [[NSBundle mainBundle] pathForResource:imageName ofType:nil];
[imageName release];
UIImage *theImage = [[UIImage alloc] initWithContentsOfFile:fileLocation];
[animationArray addObject:theImage];
[theImage release];