我正在尝试制作一个自定义的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)动画并没有太大的不同,但它略有不同,尤其是缓动和消除动画 .
有谁知道我可以用什么确切的值来最接近地复制我正在寻找的动画?