Animation Loop

vico92vico92 Membre
22:43 modifié dans API UIKit #1
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 :
<br />-(void)animationSwipeView {<br /><br />&nbsp; &nbsp; UIView *swipeView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@&quot;Swipe.png&quot;]];<br />&nbsp; &nbsp; swipeView.center = self.center;<br />&nbsp; &nbsp; swipeView.opaque = YES;	<br />	<br />	// add view in proper order<br />&nbsp; &nbsp; &nbsp; &nbsp; [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

Réponses

  • NseaProtectorNseaProtector Membre
    22:43 modifié #2
    Je crois que ton timer n'est pas utile, voir pas conseillé...
    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?
  • Philippe49Philippe49 Membre
    22:43 modifié #3
    Tu peux prendre des idées dans l'appli jointe
  • vico92vico92 Membre
    22:43 modifié #4
    Merci à  vous 2,

    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 ^^

Connectez-vous ou Inscrivez-vous pour répondre.