Проблема со сбоем анимации изображений Ipad

#iphone #objective-c #ios4 #animation

#iPhone #objective-c #ios4 #Анимация

Вопрос:

У меня есть приложение, в котором я использовал 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];

}
  

и в методе освобождения, который я использую

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

он отлично работает на симуляторе, но вылетает на Ipad.Что на самом деле происходит на ipad, так это то, что иногда он мигает, а через некоторое время исчезает.Поэтому, пожалуйста, помогите мне с этим, друзья.Я также выпускаю array на -(void)viewWillDisappear Поэтому, пожалуйста, друзья, помогите мне с этим, любая помощь или предложение будут оценены.

Комментарии:

1. Возможно, проблема не в этом, но убедитесь, что вы вызываете [super viewWillAppear: animated] в какой-то момент вашего viewWillAppear: метода.

Ответ №1:

Сбой вашего приложения из-за того, что BackGrdImage анимируется только один раз, после чего вы освобождаете массив

[arrayOfImages удаляет все объекты];

и

BackGrdImage.animationRepeatCount = 3;

из-за этого ваше изображение анимируется во второй раз, но BackGrdImage не получает arrayOfImages для анимации, поэтому ваше приложение выйдет из строя.

Есть один способ, когда ваша анимация изображения выполняется три раза за 1,5 секунды, а затем после того, как вам нужно вызвать один метод для освобождения вашего массива изображений. Описанный выше процесс обязательно сработает.

Ответ №2:

Возможно, вы получаете предупреждение о памяти. Потому что я не думаю, что это устройство будет поддерживать массив изображений из 89 изображений / imageviews. Попробуйте отладить свое приложение на устройстве.