49 votes

Comment ajouter une animation tout en changeant le mode caché d'une uiview ?

Je veux ajouter une animation à une vue tout en changeant son mode caché, c'est-à-dire

 my_view.hidden=YES;

J'ai ajouté un bouton dans la barre de navigation. Lorsque nous cliquons dessus, la nouvelle vue est configurée pour être affichée. Il dessine en haut de la table de navigation.

60voto

Jeremy W. Sherman Points 22019

Animez l'opacité de la vue de 100 % à 0 %. Faites en sorte que le rappel d'achèvement de l'animation définisse la vue à masquer. Vous souhaiterez peut-être également réinitialiser l'opacité à 100 % pendant le rappel, de sorte que la vue s'affichera complètement opaque lorsque vous l'afficherez.

 yourView.alpha = 0.0 //for zero opacity
yourView.alpha = 1.0 //for 100% opacity

35voto

Palyancodr Points 6

Il n'y a pas d'animation pour se cacher cependant; vous obtenez le même résultat avec le code Swift ci-dessous :

 UIView.animate(withDuration: 0.2, delay: 0, options: [], animations: {            
    self.yourView.alpha = 0 // Here you will get the animation you want
}, completion: { _ in  
    self.yourView.hidden = true // Here you hide it when animation done
})

22voto

Abhi Points 563

Je pense que la façon la plus appropriée de le faire est:

 [UIView transitionWithView:aView
                  duration:0.3
                   options:UIViewAnimationOptionTransitionCrossDissolve 
                animations:^(void){
                              aView.hidden = NO;
                           }
                completion:nil];

20voto

Mise à jour vers Swift 3 :

 UIView.animate(withDuration: 0.2, delay: 0.2, options: .curveEaseOut,
      animations: {firstView.alpha = 0}, 
      completion: { _ in firstView.isHidden = true
        //Do anything else that depends on this animation ending
    })

Et si vous souhaitez animer quelque chose après la première vue, vous pouvez répliquer le code à l'intérieur du bloc de complétion avec alpha = 1 et hidden = false .

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