3 votes

Comment mettre en œuvre le glissement de la vue dans l'iPhone ?

J'aimerais mettre en œuvre l'effet d'une vue qui glisse vers l'intérieur, un peu comme l'animation d'une vue introduite par presentModalViewController, mais la vue ne glisse que pour couvrir la moitié de l'écran.

Je l'ai abordé de cette façon :

1) Juste avant que la nouvelle vue n'apparaisse et ne se glisse, ajoutez la vue enfant Subview. Positionnez-la de manière à ce qu'elle soit hors de vue au début.

2) Appelez une méthode sur le contrôleur de vue de la sous-vue pour exécuter le code de Core Animation afin de l'intégrer.

La procédure ci-dessus ne semble pas fonctionner (rien ne se passe - la vue apparaît simplement à son emplacement de départ). L'ajout de la vue à l'avance dans viewDidLoad ne fonctionne pas non plus. Idéalement, j'aimerais que le code ait la même exigence que presentModalViewController - qui exige que vous instanciez le contrôleur de vue au moment où vous avez besoin de faire apparaître la vue et de l'animer.

J'apprécierais que vous puissiez fournir un pointeur ou un code pour animer la vue en entrée et en sortie.

2voto

Ryan Ferretti Points 1785

Je vérifierais l'exemple de projet ViewTransitions sur le site de développement d'Apple. C'est une excellente ressource pour comprendre les choses simples à faire lors de la mise en place des transitions. Si vous souhaitez ne faire glisser que la moitié de l'écran, vous pouvez essayer de régler le cadre de la "vue coulissante" sur la moitié de l'écran... consultez le code et faites un essai.

2voto

CalZone Points 347

J'anime généralement l'écran modal dans le viewController parent plutôt que dans le viewController modal lui-même.

0voto

nico Points 2482

Vous devriez peut-être poster le code que vous utilisez à l'étape 2. J'ai fait quelque chose de similaire dans une de mes applications, où l'utilisateur fait glisser une vue d'un bord à l'autre de l'écran, comme s'il plaçait une couverture sur l'écran.

Si ce que vous essayez de faire est une animation automatique (sans interaction de l'utilisateur), je pense que vous devez : définir à la vue coulissante un cadre représentant la position finale. Faites-le dans un bloc d'animation. Jouez avec les paramètres de durée, de courbe d'animation, etc.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X