我正在尝试制作一个自定义的CATransition,以便推送一个viewController看起来与模态呈现一个完全相同 .

到目前为止,我有 present

override func viewWillAppear(_ animated:Bool){
    super.viewWillAppear(animated)
    self.transition = CATransition()
    self.transition.duration = 0.4
    self.transition.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseInEaseOut)
    self.transition.type = kCATransitionMoveIn
    self.transition.subtype = kCATransitionFromTop
    self.transition.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseInEaseOut)
    self.navigationController?.view.layer.add(self.transition, forKey: nil)
}

这是 dismiss

override func viewWillDisappear(_ animated:Bool){
    super.viewWillDisappear(animated)
    self.transition.type = kCATransitionReveal
    self.transition.subtype = kCATransitionFromBottom
    self.navigationController?.view.layer.removeAllAnimations()
    self.transition.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseInEaseOut)
    self.navigationController?.view.layer.add(self.transition, forKey: nil)
}

这就是我从navigationController推送它的方式

self.navigationController?.pushViewController(myViewController(), animated: false)

我所拥有的与默认的UIViewController.present(vc,animated:true,completion:nil)动画并没有太大的不同,但它略有不同,尤其是缓动和消除动画 .

有谁知道我可以用什么确切的值来最接近地复制我正在寻找的动画?