Animation Loop
Slt tt le monde,
J'ai 2 problèmes à résoudre :
- débuter l' animation dès l'apparition de la view puis la répéter à l'infini.
- faire disparaà®tre l'objet animé à la fin de l'animation..
J'ai donc créé un Timer dans un viewDidLoad avec pour selector la methode contenant mon animation mais au chargement de la View, l'animation ne démarre pas...
J'ai cru comprendre qu'un viewDidLoad ne fonctionne que dans un viewController, c'est ça ?
Voici le code de l'animation à jouer et à répéter :
Il y a effectivement le [UIView setAnimationRepeatCount:count]; mais il ne prend qu'un valeure finie. Certes, il pourrait répéter l'animation un très grand nombre de fois, mais l'autre inconvénient est qu'une fois lancée, l'animation ne peut plus être arrêtée par un autre évènement ^^ à bannir donc.
Pour le 2ème probleme, c'est simple, quand l'objet animé a fini de se déplacer, il reste affiché alors que je voudrais le faire disparaà®tre en le supprimant réellement de la vue. J'ai essayé avec:
[swipeView removeFromSuperview]; mais ça :(renaud):
à vot' bon coeur, m'sieurs dames !!
Vico
J'ai 2 problèmes à résoudre :
- débuter l' animation dès l'apparition de la view puis la répéter à l'infini.
- faire disparaà®tre l'objet animé à la fin de l'animation..
J'ai donc créé un Timer dans un viewDidLoad avec pour selector la methode contenant mon animation mais au chargement de la View, l'animation ne démarre pas...
J'ai cru comprendre qu'un viewDidLoad ne fonctionne que dans un viewController, c'est ça ?
Voici le code de l'animation à jouer et à répéter :
<br />-(void)animationSwipeView {<br /><br /> UIView *swipeView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"Swipe.png"]];<br /> swipeView.center = self.center;<br /> swipeView.opaque = YES; <br /> <br /> // add view in proper order<br /> [self addSubview:swipeView];<br /> [self sendSubviewToBack:swipeView];<br /> <br /> // starts the position animation<br /> [UIView beginAnimations:nil context:NULL];<br /> [UIView setAnimationDuration:1];<br /> swipeView.center = CGPointMake (swipeView.center.x, 250);<br /> swipeView.center = CGPointMake (swipeView.center.x, 30);<br /> // ends animation<br /> [UIView commitAnimations];<br /> <br /> <br /> // starts the opacity animation<br /> [UIView beginAnimations:nil context:NULL];<br /> [UIView setAnimationDuration:1];<br /> swipeView.alpha = 1;<br /> swipeView.alpha = 0;<br /> // ends animation<br /> [UIView commitAnimations];<br />}<br />
Il y a effectivement le [UIView setAnimationRepeatCount:count]; mais il ne prend qu'un valeure finie. Certes, il pourrait répéter l'animation un très grand nombre de fois, mais l'autre inconvénient est qu'une fois lancée, l'animation ne peut plus être arrêtée par un autre évènement ^^ à bannir donc.
Pour le 2ème probleme, c'est simple, quand l'objet animé a fini de se déplacer, il reste affiché alors que je voudrais le faire disparaà®tre en le supprimant réellement de la vue. J'ai essayé avec:
[swipeView removeFromSuperview]; mais ça :(renaud):
à vot' bon coeur, m'sieurs dames !!
Vico
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Sans être 100% sûr, je dirais:
1) Pour vérifier si ta méthode est appelée: NSLog
2) AwakeFromNibs
3) CoreAnimation
Peut-être que le cour de Standford sur iTunes (gratuit) épisode 5 pourrait t'aider?
Pour démarrer l'anim aussitôt, j'ai fait avec un awakeFromNib, ça fonctionne, et pour la boucle elle n'est pas infinie, mais très très longue.
Pour retirer le view apres l'anim, j'utilise bien [self removeFromSuperview], il fallait juste le mettre AVANT [commitAnimation], mais ça fonctionne mal (la view d'opacité 0 repasse à opacité max pendant 1/100eme de sec avant de disparaà®tre).
Merci pour ton fichier Phillipe, il me sera probablement utile ^^