Как остановить анимацию UIView - PullRequest
26 голосов
/ 26 августа 2011

У меня есть несколько UIImageViews в пределах UIScrollView, которые я хочу покачивать, когда пользователь нажимает одну из них.Это похоже на поведение, которое вы получаете при длительном нажатии значка в меню iPad / iPhone.

Итак, у меня есть следующее:

- (void)startWiggling {

    for (UIImageView *touchView in [scrollView subviews]) {

        [UIView beginAnimations:@"wiggle" context:nil];
        [UIView setAnimationDuration:0.1];
        [UIView setAnimationRepeatAutoreverses:YES];
        [UIView setAnimationRepeatCount:FLT_MAX];

        //wiggle 1 degree both sides
        touchView.transform = CGAffineTransformMakeRotation();
        touchView.transform = CGAffineTransformMakeRotation(-0.0174532925);

        [UIView commitAnimations];

    }    

}

- (void)stopWiggling {
    NSLog(@"Stop wiggling");    
}

Это работает отлично.Вопрос в том ... Как я могу заставить остановить покачивание после нажатия пользователем кнопки?У меня есть кнопка и подключил его и т. Д., И он достигает метода stopWiggling, так что все в порядке.Но так ...

  1. Как удалить анимацию UIView из этих UIImageViews?
  2. Можно ли привязать это действие к пользователю, нажав кнопку home на их устройстве?

1 Ответ

71 голосов
/ 26 августа 2011
 #import <QuartzCore/QuartzCore.h>

тогда

 [myView.layer removeAllAnimations];

или

[self.view.layer removeAllAnimations]; 
...