Comment arrêter une UIView animation

J'ai plusieurs UIImageViews dans un UIScrollView que j'ai envie de bouger lorsque l'utilisateur de longue presses de l'un d'eux. De manière similaire, le comportement que vous obtenez lorsque vous appuyez longuement sur une icône dans votre iPad/iPhone menu.

J'ai donc le suivant:

- (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");    
}

Cela fonctionne bien. La question est... Comment puis-je faire arrêter en tortillant une fois que l'utilisateur a appuyé sur un bouton? J'ai un bouton et il connecté etc et c'est d'atteindre le stopWiggling méthode, c'est très bien. Mais alors...

  1. Comment puis-je supprimer le UIView animation à partir de ces UIImageViews?
  2. Puis-je lier cette action de l'utilisateur en appuyant sur la bouton home sur leur appareil?
  • Vous ne savez pas comment répondre à la première bits mais en appuyant sur le Bouton de la Maison sera la cause de la cessation de l'Application à l'Écran d'Accueil. Il n'y a aucun moyen de lier cette touche parce qu'il est détenu par le Système
  • Patel je sais, mais je pensais qu'il pouvait être un moyen de remplacer la applicationDidEnterBackground méthode et de vérifier si oui ou non les images sont tortillant. Et si oui, arrêtez l'agitation et annuler l'application d'entrer dans le mode arrière-plan. Mais je ne sais pas si c'est possible.
  • Vous ne pouvez pas arrêter de passer en arrière-plan, mais vous pouvez arrêter de remuer dans la méthode. Il ne vous donne pas une option...
  • Je crois que la meilleure façon, en 2018, serait d'utiliser UIViewPropertyAnimator
InformationsquelleAutor Jules | 2011-08-26