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
但不知道如何以编程方式适合在这里 –
我试图通过我的标签栏控制器和toView
和fromView
到自定义类导致没有发生/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。