【问题标题】:Swift: Problems with custom UIView.transition?Swift:自定义 UIView.transition 的问题?
【发布时间】:2018-02-06 07:41:39
【问题描述】:

好的,我已经查看了https://developer.apple.com/videos/play/wwdc2013/218/ 和 SO 问题,类似地尝试使用标签栏控制器及其视图控制器进行自定义转换,但在弄清楚这里的主要步骤后我陷入了困惑。

我需要知道如何(意味着示例代码将非常有用)调用自定义 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
        }

在这里手动调用它,我以编程方式为我的标签控制器更改*selectedIndex*

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

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

我已阅读并尝试创建一个自定义类 UIViewControllerAnimatedTransitioning,但不知道这将如何以编程方式融入此处 -

我尝试将我的标签栏控制器和toViewfromView 传递到自定义类导致没有任何事情发生/动画。这就是我在这里使用 UIView.transition 的原因。

如何自定义UIView.transition?我可以在这里做什么?

【问题讨论】:

    标签: ios swift swift3 uiview uiviewanimationtransition


    【解决方案1】:

    你应该遵守 UITabBarControllerDelegate 并创建一个 customTransition 类并将其传递如下:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-15
      • 1970-01-01
      • 2015-01-13
      • 1970-01-01
      • 2011-11-04
      相关资源
      最近更新 更多