Swift:自定义问题 UIView.transition?

Swift: Problems with custom UIView.transition?

好的,我已经查看了 https://developer.apple.com/videos/play/wwdc2013/218/ 和 SO 问题,类似地尝试使用选项卡栏控制器及其视图控制器进行自定义转换,但我 运行 在弄清楚这里的主要步骤后感到困惑。

我需要知道如何(意味着示例代码真的很有帮助)调用自定义 UIView.transition 或在 UIView.transition 中有一个自定义 option。我需要使用它在我的选项卡栏控制器中的选项卡之间进行 sliding/modal 模拟转换。

让转换发生的唯一方法是使用以下函数(这会使它们溶解):

func tabBarController(_ tabBarController: UITabBarController, shouldSelect viewController: UIViewController) -> Bool {

            if selectedViewController == nil || viewController == selectedViewController {
                return false
            }

            let fromView = selectedViewController!.view
            let toView = viewController.view

            UIView.transition(from: fromView!, to: toView!, duration: 0.3, options: [.transitionCrossDissolve], completion: nil)

            return true
        }

并在此处手动调用它,我以编程方式为我的选项卡控制器更改 *selectedIndex*

//SWITCHES BUTTON -------------------------------------------
    func switchTab(index: Int)

    {
        //transition
        self.tabBarController(self, shouldSelect: (viewControllers?[index])!)

我已经阅读并尝试制作自定义 class UIViewControllerAnimatedTransitioning 但不知道这如何以编程方式适合这里 -

我尝试将我的选项卡栏控制器和 toViewfromView 传递给自定义 class 结果没有任何结果 happening/animating。这就是为什么我在这里求助于UIView.transition。

如何定制 UIView.transition?我可以在这里做什么?

你应该符合 UITabBarControllerDelegate 并创建一个 customTransition class 并按如下方式传递它:

 func tabBarController(_ tabBarController: UITabBarController, animationControllerForTransitionFrom fromVC: UIViewController, to toVC: UIViewController) -> UIViewControllerAnimatedTransitioning? {
        let animator = TabAnimationManager()
        return    animator

    }

并且Class TabAnimationManager 应该是UIPercentDrivenInteractiveTransition 的子class 并且符合UIViewControllerAnimatedTransitioning 协议。您可以在 class.

中添加自定义动画