Animation personnalisée de Segue
Je suis en train d'utiliser un segue à effectuer une sorte de zoom de l'animation.
Lorsque la transition est exécutée, la sourceViewController devient noir, puis le zoom se produit.
Essayé aussi de définir la pushViewController: dans l'achèvement bloc, mais la transition n'est pas exécutée du tout.
- (void)perform {
UIViewController *sourceViewController = (UIViewController *) self.sourceViewController;
UIViewController *destinationViewController = (UIViewController *) self.destinationViewController;
[destinationViewController.view setTransform:CGAffineTransformMakeScale(0.5,0.5)];
[destinationViewController.view setAlpha:0.0];
[UIView animateWithDuration:0.5
delay:0.0
options:UIViewAnimationCurveEaseOut
animations:^{
[destinationViewController.view setTransform:CGAffineTransformMakeScale(1.0,1.0)];
[destinationViewController.view setAlpha:1.0];
[sourceViewController.navigationController pushViewController:destinationViewController animated:NO];
}
completion:^(BOOL finished){
}];
}
Ce que je fais de mal ?
source d'informationauteur Nimrod7
Vous devez vous connecter pour publier un commentaire.
Il se sent encombrants, mais vous pouvez essayer d'ajouter de la destinationViewController.vue comme une sous-vue avant votre animation et ensuite lorsque l'animation est terminé, retirez-la et remettez-la sur sans animation. Résout l'écran noir avant la transition, mais peut-être pas parfait, selon ce que vous voulez faire avec la barre de navigation, mais peut-être plus proche:
Note, efficace iOS 7, vous pouvez utiliser des transitions personnalisées. Pour plus d'informations, voir la WWDC 2013 Les Transitions Personnalisées À L'Aide De La Vue Des Contrôleurs.
Par exemple, si vous essayez de faire une transition personnalisée avec manette de navigation, la première vue contrôleur spécifier lui-même en tant que délégué de la manette de navigation:
Là, il devrait spécifier la coutume des animateurs pour push et pop, respectivement:
Et alors vous feriez bien évidemment de mettre en œuvre ces animateurs:
et