TransitioningKit 是一个 Swift 框架,提供了一组简化、明确和标准化自定义导航和视图控制器转换实施组件。
TransitioningKit 目前提供了三个常用公共类和一个公共协议
UINavigationControllerDelegate 协议的具体实现。
当它被分配给 delegate
属性的 UINavigationController 时,PSNavigationControllerDelegate 负责提供用于 push
和 pop
转换的 UIViewControllerAnimatedTransitioning (“动画器”)和 UIPercentDrivenInteractiveTransition (“交互控制器”)对象。
UIViewControllerTransitioningDelegate 协议的具体实现。
类似于 PSNavigationControllerDelegate,当它被分配给 UIViewController 的 transitioningDelegate
属性时,PSViewControllerTransitioningDelegate 负责提供用于 present
和 dismiss
转换的 UIViewControllerAnimatedTransitioning (“动画器”)、UIPercentDrivenInteractiveTransition (“交互控制器”)和 UIPresentationController (“展示控制器”)对象。
UIPercentDrivenInteractiveTransition 的子类。
PSPanGestureInteractionController
协调一个 UIPanGestureRecognizer
来简化常见的手势驱动交互转换的实现。它包括一个简单的委托协议,您可以实现来定制应用程序的行为。
一个自定义协议,用于处理你应用程序中的 PSPanGestureInteractionController
事件。
这里有一个在三个视图控制器之间简化的转换示例。
在这种情况下,我们可以看到这两个视图控制器之间的自定义交互式“推送”操作。以下是这次操作中涉及的各个部分
PSPanGestureInteractionController
使用 FirstViewInteractionControllerDelegate
进行实例化,如以下链接所示 这里。PSNavigationControllerDelegate
使用交互控制器和动画器进行实例化,如以下链接所示 这里。PSNavigationControllerDelegate
被分配为导航控制器的 delegate
,如下所示 这里。在这种情况下,我们可以看到这两个视图控制器之间的模态“呈现”和“消失”操作。
PSViewControllerTransitioningDelegate
使用动画器进行实例化,如以下链接所示 这里。PSViewControllerTransitioningDelegate
遵循动画器被分配为模态视图控制器的 transitioningDelegate
,如以下链接所示 这里。