Ipad动画图像崩溃问题

时间:2011-04-27 05:33:39

标签: iphone objective-c ios4 animation

我有一个应用程序,其中我将imageview作为背景,在该imageview中我使用89个图像来制作动画。这是我做动画的代码

-(void)viewWillAppear:(BOOL)animated
{

NSString *cachesDirectoryPath = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) objectAtIndex:0];    
NSLog(@"cachesDirectoryPath: %@", cachesDirectoryPath);
    CPIAppDelegate *obj=(CPIAppDelegate *)[[UIApplication sharedApplication]delegate];
    arrayOfImages=[[NSMutableArray alloc]init];

    viewMenu.hidden = obj.buttonStatus;
    for (int i=0; i<IMAGE_ANIMATION_COUNT; i++) {
//  [UIImage imageWithContentsOfFile:[NSString stringWithFormat:@"%@/streamvideo351_frame%d.jpg",cachesDirectoryPath,i]];
        [arrayOfImages addObject:[UIImage imageNamed:[NSString stringWithFormat:@"streamvideo351_frame%d.jpg",i]]];

    }

    BackGrdImage.animationImages=arrayOfImages;
    BackGrdImage.animationDuration =5.0; 
    BackGrdImage.animationRepeatCount =3;
    [BackGrdImage startAnimating];
    [arrayOfImages removeAllObjects];

}

在dealloc方法中我正在使用

[imageAnimations release];
[BackGrdImage removeFromSuperview];
[BackGrdImage release];

它在模拟器上工作正常但在Ipad上崩溃。在ipad中实际发生的事情有时它会闪烁并且有时间它会消失。所以请帮助我和这些朋友一起。我也在{{1}发布阵列所以请朋友帮我解决任何帮助或建议将不胜感激。

2 个答案:

答案 0 :(得分:0)

你的应用程序崩溃,因为BackGrdImage在释放数组后只动画了一次

  

[arrayOfImages removeAllObjects];

  

BackGrdImage.animationRepeatCount = 3;

由于这个原因你的图像第二次动画,但BackGrdImage没有得到动画的arrayOfImages,因此你的应用程序会崩溃。

有一种方法,你的图像动画三次意味着1.5秒,然后你必须调用一种方法来释放你的arrayOfImages。 上述过程肯定会成功。

答案 1 :(得分:0)

可能是你得到记忆警告。因为我认为该设备不支持89个图像/图像视图的图像阵列。尝试在设备上调试你的应用程序。