Animation UIViewController

Bonjour



Aujourd'hui je commence à  m'intéresser à  un sujet que je ne connais presque pas : Core Animation. J'ai pas mal lu la documentation Apple, mais j'ai pas trouvé ce que je cherchais.



En fait j'essaye de passer d'une UIViewController à  une autre avec une animation que j'aurais créée moi-même. Le problème est que je ne sais absolument pas comment m'y prendre pour créer une animation personnalisée.



Pour exemple : J'ai "FirstViewController" et "SecondViewController". Je souhaite que lorsque je fait un geste vers le haut :

_"FirstViewController" se soulève mais pas entièrement. C'est à  dire que à  une certaine hauteur, la vue ne doit plus se soulever.

_Lorsqu'elle se soulève, on doit apercevoir "SecondViewController" en dessous de "FirstViewController"

_Lorsque je soulève "FirstViewController", cette vue doit suivre le mouvement de mon doigt



En fait l'animation ressemble beaucoup à  celle de l'application YouTube (voir pièces jointes). Sauf qu'au lieu que l'animation se fasse de droite à  gauche, je souhaiterais qu'elle se fasse de haut en bas.



Est-ce que quelqu'un aurait une idée sur la question ?



Merci image/wink.png' class='bbc_emoticon' alt=';)' />

Réponses

  • Ben je pense qu'ils superposent deux controller et qu'ils implémentent un gestureReconizer et sur le geste ils font un [UIView animation...] sur la view de ton controller.

    Enfin l'animation est surement faisable avec CoreAnimation mais j'ai l'impression que c'est un peu un bazooka pour tuer une mouche quoi.

    J'ai pas d'autre idée la a froid désolé.
  • CéroceCéroce Membre, Modérateur
    octobre 2012 modifié #3
    Et bien moi, je pense que ce qui s'affiche à  l'écran est une vue et certainement pas un contrôleur (principe du MVC).



    Mais sinon, effectivement, le principe est celui donné par Nasatya. Les deux vues sont placées dans la même vue parente et on utilise les méthodes d'animation de UIView pour changer la frame de la vue.
  • Oui mais il y a deux vues. Je me demande si je ne pourrais pas superposer ma View sur ma UIViewCintroller.

    Sinon pour l'histoire des [UIView animation...] j'ai pas très bien compris. Serait-il possible d'avoir des explication supplémentaires ? image/smile.png' class='bbc_emoticon' alt=':)' />
  • En fait c'est une méthode de classe de UIView qui permet de faire des actions sur ta view en les animants.



    Par exemple si tu change la frame de ta view sur une action (Tap bouton, swipe ou autre) ta view va changer de position instantanément de ton point A vers ton point B sans animation.



    En utilisant cette méthode (qui est sous forme de bloc extrêmement simple a mettre en place) quand tu exécuteras ton action alors tu pourras lui donner une durée d'animation. Ta view se déplacera de ton point A vers ton point B en parcourant tous les points (en ligne droite) pendant la durée qui tu as enregistré ce qui ajoute donc l'effet d'animation.



    http://developer.apple.com/library/ios/#documentation/uikit/reference/uiview_class/UIView/UIView.html#//apple_ref/doc/uid/TP40006816-CH3-SW111



    Tu as la doc apple qui te donnera toutes les subtilité a connaitre sur ces animations (durée, complétions, effet d'animation...)
  • Merci Nasatya ! En fait je connaissais déjà  [UIView ...]. En fait je voudrais savoir, maintenant, comment faire pour que la vue suive mon doigt seulement à  la verticale ? Je ne sais pas localiser la position d'un touch.
  • C'est pas du tout avec ça qu'il faut faire.



    En faite il faut mettre les deux le UIView pour le clique du bouton en haut a gauche.



    Il me semble qu'il faut utiliser les UIPanGestureRecognizer pour le reste



    http://developer.apple.com/library/ios/#documentation/uikit/reference/UIPanGestureRecognizer_Class/Reference/Reference.html
Connectez-vous ou Inscrivez-vous pour répondre.