使用UIView Transition幻灯片动画吗?

时间:2018-08-01 09:24:18

标签: ios swift xcode uiviewanimationtransition

我正在设置新的导航根。我想在设置导航时显示动画。我可以使用以下代码设置翻转和卷曲动画。

UIView.transition(with: self.window!, duration: 2, options: .transitionFlipFromLeft, animations: {
    let navController = UINavigationController()
    // App Theming
    navController.navigationBar.barTintColor = .white
    navController.navigationBar.tintColor = .white
    navController.navigationBar.titleTextAttributes = [NSAttributedStringKey.foregroundColor: UIColor.white]
    navController.pushViewController(viewContoller, animated: true)
    self.window?.rootViewController = navController
    self.window?.makeKeyAndVisible()
}, completion: {_ in})

但是,我需要为此从左到右设置幻灯片动画。任何人都可以让我知道如何实现这一目标吗?

1 个答案:

答案 0 :(得分:0)

如果您想假冒对新根视图的推送,可以执行以下操作。

    let navController = UINavigationController()
    //App Theming
    navController.navigationBar.barTintColor = .white
    navController.navigationBar.tintColor = .white
    navController.navigationBar.titleTextAttributes = [NSAttributedStringKey.foregroundColor: UIColor.white]
    //create our fake animation
    let trans = CATransition()
    trans.type = kCATransitionPush
    trans.subtype = kCATransitionFromRight
    trans.duration = 0.4
    self.window?.layer.add(trans, forKey: nil)
    //set your window change here
    self.window?.rootViewController = navController
    self.window?.makeKeyAndVisible()

完全未经测试,但我可以肯定的是我过去曾经做过。如果这样不起作用,请尝试设置rootViewController,然后添加动画。