NavigationProgress

SwiftVersion Platform License: MIT

一种使 UIProgressView 附加到 UINavigationController 顶部的简单方法。

import NavigationProgress

NavigationProgress.setup()
startNavigationProgress(with: NavigationProgress(totalPages: 3))

一切就绪,您可以获得如下效果: sample


.oneTime (一次性) .always (总是)
push (推进)
present fullscreen (全屏显示)
present overCurrentContext (在当前上下文之上显示)

要求


安装

Swift Package Manager (Swift 包管理器)

Swift Package Manager 是一种用于自动化 Swift 代码分发的工具,并已集成到 swift 编译器中。

设置好 Swift 包后,将 NavigationProgress 添加为依赖项就像将其添加到 Package.swiftdependencies 值一样简单。

dependencies: [
    .package(url: "https://github.com/chrisnyw/NavigationProgress", from: "0.2")
]

如何使用

- 导入 NavigationProgress

需要在时导入 NavigationProgress

import NavigationProgress

– NavigationProgress 设置

在您的应用程序启动时调用 setup() 以启用 swizzleHelper,使 NavigationProgress 正常工作。

NavigationProgress.setup()

- 在您的 UIViewController 中启动 NavigationProgress

确保您的 UIViewControllerUINavigationController 下,并在您当前的 viewController 类中调用 startNavigationProgress(with:)。 一旦您调用 startNavigationProgress(),它会将您当前的页面视为第一页,并且 NavigationProgress 将会显示。 同时,当您返回到上一页时,NavigationProgress 将从您的 navigationController 中移除。

startNavigationProgress(with: NavigationProgress(totalPages: 3))

- 强制移除 NavigationProgres

从您的 navigationController 中强制移除现有的 NavigationProgress。

removeNavigationProgress()

配置

- 对象 NavigationProgress

totalPages 是对象 NavigationProgress 唯一必须的属性。

NavigationProgress(totalPages: 3)

或者您可以通过传递所有值来配置 NavigationProgress。

NavigationProgress(totalPages: 3,
                   progressType: .oneTime, // default .oneTime
                   progressTintColor: .orange, // default .orange
                   trackTintColor: .gray, // default .gray
                   animationDuration: 0.3) // default 0.3

– 属性 totalPages (总页数)

调整总页数,用于计算 progressBarView 的总值。

navigationProgress.totalPages = 3

– 属性 progressType (进度类型)

设置 NavigationProgress 进度类型,仅显示 oneTime (一次性) 或 always (总是)。

- .oneTime (一次性)

NavigationProgress 将在经过 totalPages 后被移除。

- .oneTime (一次性)

NavigationProgress 将在经过 totalPages 后不会被移除。 因此,当您返回到 totalPages 之前的页面时,NavigationProgress 将再次显示。

public enum ProgressType {
  case oneTime
  case always
}

– 属性 progressTintColor (进度条颜色)

调整进度条已填充部分的颜色。

navigationProgress.progressTintColor = .orange

– 属性 trackTintColor (轨道颜色)

调整进度条未填充部分的颜色。

navigationProgress.trackTintColor = .gray

– 属性 animationDuration (动画持续时间)

调整添加或移除 NavigationProgress 时,显示/隐藏 NavigationProgress 的动画持续时间。

navigationProgress.animationDuration = 0.3

作者

Chris Ng (chrisnyw@gmail.com)


许可

NavigationProgress 在 MIT 许可下可用。 更多信息请参阅 LICENSE 文件。