0

私はカスタム水平スライドUINavigationControllerトランジションを作成しようとしています。プッシュアニメーションはうまくいくようです。しかし、私はポップしようとしている(と横スライドバックすることを持っている)だけ空白の画面だとアニメーション時間後にビューは、あなたのビューで既存の変換をリセットする必要があるようにそれが必要カスタム水平ポップトランジションが正常に機能しない

func animateTransition(using transitionContext: UIViewControllerContextTransitioning) { 

     let container = transitionContext.containerView 
     let fromView = transitionContext.view(forKey: UITransitionContextViewKey.from)! 
     let toView = transitionContext.view(forKey: UITransitionContextViewKey.to)! 

     let offScreenRight = CGAffineTransform(translationX: container.frame.width, y: 0) 
     let offScreenLeft = CGAffineTransform(translationX: -container.frame.width, y: 0) 

     fromView.frame = transitionContext.initialFrame(for: transitionContext.viewController(forKey: .from)!) 
     toView.frame = transitionContext.finalFrame(for: transitionContext.viewController(forKey: .to)!) 

     toView.transform = isPresenting == true ? offScreenRight : offScreenLeft 



     container.addSubview(toView) 
     container.addSubview(fromView) 

     let duration = self.transitionDuration(using: transitionContext) 

     UIView.animate(withDuration: duration, delay: 0.0, usingSpringWithDamping: 0.5, initialSpringVelocity: 0.8, options: [], animations: { 

      fromView.transform = self.isPresenting == true ? offScreenLeft : offScreenRight 
      toView.transform = .identity 

     }, completion: { finished in 

      toView.frame = transitionContext.initialFrame(for: transitionContext.viewController(forKey: .from)!) 
      transitionContext.completeTransition(true) 
     }) 
    } 

答えて

1

が見える場所を表示されていたときに。

func animateTransition(using transitionContext: UIViewControllerContextTransitioning) { 

    let container = transitionContext.containerView 
    let fromView = transitionContext.view(forKey: UITransitionContextViewKey.from)! 
    let toView = transitionContext.view(forKey: UITransitionContextViewKey.to)! 

    // add these two lines  
    fromView.transform = .identity 
    toView.transform = .identity 

    // ... the rest of your existing code 
+0

はい、そうです。それはそれをした!ありがとう!私は、それらのビューは、最初から変換からきれいであると思った、heh :) – HelloimDarius

関連する問題