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
但不知道这如何以编程方式适合这里 -
我尝试将我的选项卡栏控制器和 toView
和 fromView
传递给自定义 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.
中添加自定义动画
好的,我已经查看了 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
但不知道这如何以编程方式适合这里 -
我尝试将我的选项卡栏控制器和 toView
和 fromView
传递给自定义 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.
中添加自定义动画