в моем nib-файле у меня есть UIImageView, который я связал с моей переменной IBOutlet UIImageView* imgH6;
Мне нужно воспроизвести несколько анимаций, поэтому я решил воспроизвести их на imgH6.например, если я хочу начать анимацию группы изображений, я сделаю: [self playAnimation1];
-(void) playAnimation1{
NSArray *imagesArrayDilema;
imagesArrayDilema = [NSArray arrayWithObjects:
[UIImage imageNamed:@"dilema1-02.png"],
[UIImage imageNamed:@"dilema1-03.png"],
[UIImage imageNamed:@"dilema1-04.png"],
[UIImage imageNamed:@"dilema1-05.png"]
// .....
// there are several images
, nil];
imgH6.animationImages = imagesArrayDilema;
// I will then start the animation as:
wait = ((double)[imgH6.animationImages count])/30;
[imgH6 setAnimationRepeatCount:1];
imgH6.animationDuration = wait;
[imgH6 startAnimating];
}
-(void) playAnimation2{
NSArray *imagesArrayDilema;
imagesArrayDilema = [NSArray arrayWithObjects:
[UIImage imageNamed:@"differentImage-01.png"],
[UIImage imageNamed:@"differentImage-02.png"],
[UIImage imageNamed:@"differentImage-03.png"],
[UIImage imageNamed:@"differentImage-04.png"],
// .....
// there are several images
, nil];
imgH6.animationImages = imagesArrayDilema;
// I will then start the animation as:
wait = ((double)[imgH6.animationImages count])/30;
[imgH6 setAnimationRepeatCount:1];
imgH6.animationDuration = wait;
[imgH6 startAnimating];
}
///.....
// ...
-(void) playAnimation8{ // etc...
, поэтому при вызове [self playAnimation1];
проблем не возникает.анимация оживляет нормально.Я также могу назвать [self playAnimation7];
и анимировать другую группу изображений.Я могу сделать это несколько раз, но в конечном итоге приложение вылетает!Чтобы это исправить, я сделал следующее: у меня есть глобальная переменная BOOL под названием isAnimating, и это означает, что каждый раз, когда появляется анимация, вы не сможете анимировать другую группу изображений, пока анимация не будет завершена.,Раньше у меня был метод:
-(void) animateMain :(NSArray*) imagesArray{
imgH6.animationImages = imagesArray;
// I will then start the animation as:
double wait = ((double)[imgH6.animationImages count])/30;
[imgH6 setAnimationRepeatCount:1];
imgH6.animationDuration = wait;
[imgH6 startAnimating];
}
, и приложение все еще падало после воспроизведения несколько раз.Я заметил, что он падает при смене анимации несколько раз.Другими словами, если я всегда выкладываю ту же анимацию, она не падает ...
также я не использовал слово alloc или init для создания экземпляра массива, поэтому я не думаю, что это связано с освобождениеммассив.