Ios 默认UIViewController当前动画的精确缓和和计时
我正在尝试制作一个自定义的CATTransition,这样推送一个viewController看起来与以模式显示一个完全相同 到目前为止,我已经准备好了Ios 默认UIViewController当前动画的精确缓和和计时,ios,swift,catransition,Ios,Swift,Catransition,我正在尝试制作一个自定义的CATTransition,这样推送一个viewController看起来与以模式显示一个完全相同 到目前为止,我已经准备好了 override func viewWillAppear(_ animated:Bool){ super.viewWillAppear(animated) self.transition = CATransition() self.transition.duration = 0.4 self.transition
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)
}
对于解雇
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,动画:true,完成:nil)动画没有太大的不同,但它有微妙的不同,特别是放松和消除动画
有人知道我可以使用什么精确值来最接近地复制我正在寻找的动画吗?尝试以下方法:
self.transition.timingFunction=CAMediaTimingFunction(控制点:0.2,0.9,0.42,1)
不准确,但离我足够近。谢谢