Swift:自定义UIView.transition的问题?

好吧,我已经通过https://developer.apple.com/videos/play/wwdc2013/218/和SO问题类似的尝试使用标签栏控制器和它的viewcontrollers进行自定义转换,但在搞清楚主要步骤在这里。

我需要知道如何(意思是示例代码将是真正有用的)来调用一个自定义的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到自定义类导致没有发生/animation。 这就是为什么我在这里使用UIView.transition。

我怎样才能做一个自定义的UIView.transition ? 我能在这里做什么?

你应该符合UITabBarControllerDelegate和创build一个customTransition类,并传递它,如下所示:

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

而类TabAnimationManager应该是UIPercentDrivenInteractiveTransition的一个子类,并符合UIViewControllerAnimatedTransitioning协议。 您可以在该类中添加自定义animation。