TransitionRouter 0.2.0

TransitionRouter 0.2.0

测试已测试
语言语言 SwiftSwift
许可证 MIT
发布上次发布2017年3月
SwiftSwift 版本3.0
SPM支持 SPM

Artem Novichkov 维护。



  • 作者:
  • Artem Novichkov

TransitionRouter

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

TransitionRouter

使用

如何使用 TransitionRouter?就像 ABC 一样简单!您需要创建一个路由器,类型如下

let topRouter = TransitionRouter(type: .top)

您还可以创建自己的自定义转换。只需创建一个符合 TransitionAnimator 协议的对象,

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

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

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

‼️不要忘记路路及其强引用!‼️

配置

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

  • duration: 动画持续时间
  • option: UIViewAnimationOptions
  • delay: 动画前的延迟
  • percentage: 完成交互式转换的最大百分比。

可以通过 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
}

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

示例

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

安装

Swift 包管理器

步骤 1

文件 > 新建 > 项目

步骤 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项目文件。文件 > 新建 > 目标 > Apple的结合框架,如不需要Obj-C支持,请从导航器中删除.h文件。

第4步

在Finder中,将Packages/TransitionRouter/Sources中的源代码拖动到你的项目中,并将其添加到TransitionRouter目标中。

第5步

将项目链接到TransitionRouter依赖项。选择主目标,在“通用”标签页中将CocoaTouchFramework添加到“已链接框架和库”中。

手动

将源文件夹拖动到你的项目中。下载

作者

Artem Novichkov,[email protected]

许可

TransitionRouter可在MIT许可下使用。有关更多信息,请参阅LICENSE文件。