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
但不知道如何做到这一点适合在这里编程 -
我试图将我的标签栏控制器和toView
和fromView
传递到自定义类中,导致没有任何动作发生。这就是为什么我在这里使用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协议。您可以在该类中添加自定义动画。