【发布时间】:2020-04-19 17:51:07
【问题描述】:
我正在尝试复制从一个标签栏 VC 导航到另一个标签栏 VC 时 Google Drive(iOS 版本)的动画(见下文):
我目前在选择标签栏项目时可以访问 fromView 和 toView,因此我可以使用 UIView.animate() 为这两个视图设置动画:
class MyCustomTabBarVC: UITabBarController {
override func viewDidLoad() {
super.viewDidLoad()
delegate = self
}
}
extension MyCustomTabBarVC: UITabBarControllerDelegate {
func tabBarController(_ tabBarController: UITabBarController, shouldSelect viewController: UIViewController) -> Bool {
guard let fromView = selectedViewController?.view, let toView = viewController.view else {
return false
}
if fromView != toView {
fromView.alpha = 1
toView.alpha = 0.8
UIView.animate(withDuration: 0.5, delay: 0.0, options: [.curveEaseInOut], animations: {
fromView.alpha = 0
}, completion: { (_) in
UIView.animate(withDuration: 0.5, delay: 0.0, options: [.curveEaseInOut], animations: {
toView.alpha = 1
})
})
}
return true
}
}
问题是我无法理解在 Google Drive 的情况下使用什么类型的动画(或动画链)。
我在上面代码中使用的动画不会有相同的结果。任何对动画有更好理解的人都可以帮忙吗? :)
【问题讨论】: