作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在尝试制作一个自定义 CATransition,以便推送一个 viewController 看起来与模态呈现一个完全相同。
到目前为止,我有这个礼物
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, animated: true, completion: nil) 动画并没有太大的不同,但它有细微的不同,尤其是缓动和关闭动画。
有谁知道我可以使用什么确切值来最接近地复制我正在寻找的动画?
最佳答案
试试这个:
self.transition.timingFunction = CAMediaTimingFunction(controlPoints: 0.2, 0.9, 0.42, 1)
https://developer.apple.com/documentation/quartzcore/camediatimingfunction/1522235-init
关于ios - 默认 UIViewController 呈现动画的精确缓动和计时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44123052/
我是一名优秀的程序员,十分优秀!