我有一个应用程序,其中我将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}发布阵列所以请朋友帮我解决任何帮助或建议将不胜感激。
答案 0 :(得分:0)
你的应用程序崩溃,因为BackGrdImage在释放数组后只动画了一次
[arrayOfImages removeAllObjects];
和
BackGrdImage.animationRepeatCount = 3;
由于这个原因你的图像第二次动画,但BackGrdImage没有得到动画的arrayOfImages,因此你的应用程序会崩溃。
有一种方法,你的图像动画三次意味着1.5秒,然后你必须调用一种方法来释放你的arrayOfImages。 上述过程肯定会成功。
答案 1 :(得分:0)
可能是你得到记忆警告。因为我认为该设备不支持89个图像/图像视图的图像阵列。尝试在设备上调试你的应用程序。