2013-02-22 2 views
0

Мне нужно анимировать UIimageview, и когда я запускаю анимацию, это происходит через долгое время, и я обнаружил, что память просочилась где-то во время непрерывной анимации для просмотра различных изображений. Все, что мне нужно сделать, это у меня число UIviews в режиме прокрутки, и у каждого представления есть настраиваемая кнопка. при выборе этой кнопки анимации происходит и если анимация в процессе, если пользователь нажимает на кнопку, что анимация будет продолжаться, и это не нужно, чтобы начать сноваUIImageview Animation Начинает использование задержек цикла и анимации

вот мой код

for (int i=0; i<AlphabetArray.count; i++) { 

    UIView *view=[[UIView alloc]initWithFrame:CGRectMake(0, 0, 300, 200)]; 
    view.backgroundColor=[UIColor grayColor]; 
    view.tag=i+1; 
    [self.scrollView addSubview:view]; 
    UIImageView *image=[[UIImageView alloc]initWithFrame:CGRectMake(200, 50, 400, 400)]; 


    [image setImage:[[animationArray objectAtIndex:i]objectAtIndex:0]]; 
    image.tag=i+1; 
    [view addSubview:image]; 

    UIButton *animatebutton=[[UIButton alloc]initWithFrame:CGRectMake(200, 50, 336, 310)]; 
    animatebutton.tag=i+1; 
    [animatebutton addTarget:self action:@selector(makeAnimation:) forControlEvents:UIControlEventTouchUpInside]; 
    //[animatebutton setImage:[UIImage imageNamed:@"NewtDance_mov_0.png"] forState:UIControlStateNormal]; 
    [view addSubview:animatebutton]; 
} 

-(void)makeAnimation:(UIImageView *)sender { 

UIView *tagView=(UIView *)[self.view viewWithTag:sender.tag]; 



for (UIImageView * imageview in [tagView subviews]) { 

    NSLog(@"Yes %d",imageview.tag); 


    if ([imageview isKindOfClass:[UIImageView class]]) { 

     if ([imageview isAnimating]) { 
      NSLog(@"Animation Happens"); 

     } 

     else{ 
      imageview.animationDuration=3.0; 

      imageview.animationImages=[animationArray objectAtIndex:sender.tag-1]; 
      imageview.animationRepeatCount=2; 
      imageview.tag=sender.tag; 
      [imageview startAnimating]; 
     } 
    } 

} 



NSLog(@"OK"); 


} 

С помощью этого кода я может достичь того, о чем я говорю. Но анимация начинается очень поздно из-за использования in-in loop

+0

убедитесь, что ваша анимация прекрасна. затем уменьшите продолжительность анимации. и проверьте его также с точки останова. – Suresh

+0

@ Суреш я попытался уменьшить продолжительность анимации, все еще я столкнулся с тем же –

+0

Вы проверяете с точками перерыва? где это на самом деле? ваша анимация прекрасна? – Suresh

ответ

5

Лучший способ справиться с этим. используйте UIImageView: animationImages Недвижимость.

  1. Создайте объект NSMutableArray, используя объекты изображения UIImage.
  2. Set Изображения массив свойству UIImageViewanimationImages по
    [imageView setAnimationImages:imagesArray]

  3. [imageView startAnimating] начать анимаций.

  4. [imageView stopAnimating] Остановить анимацию.
    Проверьте документацию для получения более подробной информации.

Для получения более подробной информации, check this..

+0

Документ слышит. http://developer.apple.com/library/ios/#documentation/uikit/reference/UIImageView_Class/Reference/Reference.html – damithH

+0

Я не понял вашего ответа –

+0

@damithH Теперь вам нужно только удалить свой второй ответ. – rptwsthi

 Смежные вопросы

  • Нет связанных вопросов^_^