TransitionRouter

Swift 5.0+ Carthage compatible Version License

TransitionRouter 帮助您快速轻松地创建控制器之间的自定义转场效果。交互式原型可在此处获得:链接

TransitionRouter

使用方法

如何使用 TransitionRouter? 简单如 ABC! 您需要创建一个具有某种转场类型的路由,例如:

let topRouter = TransitionRouter(type: .top)

您也可以创建自己的自定义转场。只需创建一个符合 TransitionAnimator 协议的对象,并使用您的对象创建一个路由。

let fadeRouter = TransitionRouter(type: .custom(animator: FadeTransitionAnimator()))

当您需要启动任何自定义转场时,将该路由设置为您想要展示的控制器的 transitioningDelegate

let vc = SecondViewController()
vc.transitioningDelegate = selectedRouter
present(vc, animated: true)

‼️不要忘记对该路由的强引用! ‼️

配置

当然,您可以自定义默认转场的选项:

动画选项可以通过 options 属性进行更改。

交互式转场

要创建交互式转场,您需要使用 interactive 参数创建一个路由。

let leftInteractiveRouter = TransitionRouter(type: .left, interactive: true)

或者直接通过属性设置:

leftInteractiveRouter.interactive = true

当然,您可以控制转场的进度。创建 UIPanGestureRecognizer 或其子类并设置路由。

let leftRecognizer = UIScreenEdgePanGestureRecognizer()
leftRecognizer.edges = .left
leftInteractiveRouter
.add(leftRecognizer)
.transition { [unowned self] router in
    let vc = ColorViewController(color: .green)
    vc.transitioningDelegate = router
    self.present(vc, animated: true)
}
view.addGestureRecognizer(leftRecognizer)

您可以手动更新转场的进度:

leftInteractiveRouter.update { recognizer -> CGFloat in
    let translation = recognizer.translation(in: recognizer.view!)
    return translation.x / recognizer.view!.bounds.width * 0.5
}

请注意 - 对于您的自定义动画器,您必须手动设置更新逻辑。

示例

要运行示例项目,请克隆存储库,并首先从 Example 目录运行 pod install

安装

Carthage

github "artemnovichkov/TransitionRouter"

CocoaPods

pod "TransitionRouter"

Swift Package Manager

步骤 1

File > New > Project

步骤 2

在根目录中创建一个 Package.swift

import PackageDescription

let package = Package(
    name: "NameOfYourPackage",
    dependencies: [
        .Package(url: "https://github.com/artemnovichkov/TransitionRouter", majorVersion: 0, minor: 1)
    ]
)

运行 swift package fetch

步骤 3

打开 Xcode 项目文件。File > New > Target > Cocoa Touch Framework 如果您不需要 Obj-C 支持,请删除导航器中的 .h 文件。

步骤 4

在 Finder 中,将源文件从 Packages/TransitionRouter/Sources 拖放到您的项目中,并将其添加到 TransitionRouter 目标。

步骤 5

将您的项目链接到 TransitionRouter 依赖项。选择您的主要目标,并将 CocoaTouchFramework 添加到 General 选项卡中的 Linked Frameworks and Libraries。

手动

将 Sources 文件夹拖到您的项目中。 下载

作者

Artem Novichkov, novichkoff93@gmail.com

许可

TransitionRouter 基于 MIT 许可发布。 更多信息请查看 LICENSE 文件。