De toute façon pour supprimer fondu lors de l'utilisation CATransition entre 2 vues?

Ce que j'essaie de faire est de pousser du côté gauche avec une animation personnalisée en utilisant CATransitions. Dans mon code normal, je veux utiliser la durée de 0.3 , mais dans l'exemple ci-dessous, j'utilise 6.0 juste pour que je puisse voir le problème réel pendant la transition.

Et il est vraiment évident qu'il y a un fondu lors de la transition vers la nouvelle vue. La nouvelle vue vient de passer de la couleur de fond à la vue réelle, tandis que la vue qui glisse hors de l'écran passe de la vue réelle à sa couleur de fond. Cela crée des regards bizarres lorsque vous faites l'animation push pour la transition.

Voici le code que j'utilise pour la transition. settingsController est le controller que j'essaye d'animer.

  let transition = CATransition() transition.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseInEaseOut) transition.duration = 6.0 transition.type = kCATransitionPush transition.subtype = kCATransitionFromLeft self.navigationController?.view.layer.addAnimation(transition, forKey: nil) UIView.transitionFromView(self.view, toView: settingsViewController.view, duration: 0, options: UIViewAnimationOptions.TransitionNone, completion: nil) self.navigationController?.pushViewController(settingsViewController, animated: false) 

Et comme mentionné, l'animation coulissante fonctionne comme je le veux, mais il y a un fondu qui se produit et qui fait que ça n'a pas l'air juste. J'ai cherché google et stackoverflow et je n'ai pas vu de solution publiée, donc je me request si quelqu'un a une idée de comment se débarrasser de ce fondu, ou même s'il y a un travail qui simule ce comportement l'expérience user ressemble à ce que je veux.

J'ai essayé de rendre les colors d'arrière-plan des deux vues identiques et cela ne semble toujours pas correct.

La manière habituelle d'utiliser un CATransition coulissant est de donner à la vue / couche en transition une vue en superposition qui se connecte aux limites (ou une super-couche qui masque les limites). De cette façon, la vue / couche glissante n'est pas visible en dehors des limites de l'aperçu, et nous ne voyons jamais le fondu.