Swift:自定义UIView.transition问题?

问题描述:

好吧,我已经浏览了https://developer.apple.com/videos/play/wwdc2013/218/和SO问题,类似地尝试使用标签栏控制器及其视图控制器进行自定义转换,但是在确定了此处的主要步骤之后,Im进入了混乱状态。Swift:自定义UIView.transition问题?

我需要知道如何调用自定义的UIView.transition或只是在UIView.transition中有一个自定义的option。我需要使用它来在标签栏控制器中的标签之间进行滑动/模式模仿过渡。

的唯一途径,我可以得到一个过渡使用下面的函数发生(这使得它们溶解):

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 
     } 

,把它手动在这儿,我编程chnage的*selectedIndex*我的选项卡控制器:

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

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

我已阅读并试图使自定义类UIViewControllerAnimatedTransitioning但不知道如何做到这一点适合在这里编程 -

我试图将我的标签栏控制器和toViewfromView传递到自定义类中,导致没有任何动作发生。这就是为什么我在这里使用UIView.transition。

我该如何定制UIView.transition?我能在这里做什么?

您应符合UITabBarControllerDelegate 和创建customTransition类,并把它作为如下:

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

    } 

和类TabAnimationManager应该UIPercentDrivenInteractiveTransition的子类,符合UIViewControllerAnimatedTransitioning协议。您可以在该类中添加自定义动画。