Progress.swift ⌛

Build Status codecov.io Carthage compatible SPM ready Version License Platform

demo gif

只需将循环中的 SequenceTypeProgress SequenceType 包裹起来,您就可以自动获得漂亮的进度条。

在 Xcode 控制台中更新进度条不起作用,因为它不支持光标移动。如果您想看到漂亮的显示效果,请在真实的终端中运行。

示例

只需像这样使用一个常规循环 for i in 1...9 { ...,并将 1...9 范围用 Progress 类型包裹起来,您就可以自动获得一个漂亮的进度条。

import Progress

for i in Progress(1...9) {
    ...
}

创建如下输出

$ 4 of 9 [-------------                 ] ETA: 0:00:05 (at 1.01 it/s)

它也适用于所有其他遵循 CollectionType 协议的类型,例如字典:Progress(["key": "value", "key2": "also value"]) 和数组:Progress([1, 52, 6, 26, 1])

您也可以手动创建进度条,而无需序列类型

var bar = ProgressBar(count: 4)

for i in 0...3 {
    bar.next()
    sleep(1)
}

配置

您可以通过组合 ProgressElementType 类型的单个构建块来配置进度条。

可以通过设置默认配置

ProgressBar.defaultConfiguration = [ProgressString(string: "Percent done:"), ProgressPercent()]

这将创建以下结果

$ Percent done: 80%

或者在 Process 初始化器中提供特定的配置

Progress(0...10, configuration: [ProgressPercent(), ProgressBarLine(barLength: 60)])

产生类似这样的效果

$ 100% [------------------------------------------------------------]

可用的 ProgressElementType 元素

安装

Cocoapods

Progress.swift 可以通过 CocoaPods 获取。要安装它,只需将以下行添加到您的 Podfile

pod "Progress.swift"

Carthage

要使用 Carthage 将 Progress.swift 集成到您的 Xcode 项目中,请在您的 Cartfile 中指定它

github "jkandzi/Progress.swift"

运行 carthage update 来构建框架,并将构建的 Progress.framework 拖入您的 Xcode 项目。

Swift Package Manager

要使用 Swift Package Manager 安装,请在您的 Package.swift 中添加以下内容

import PackageDescription

let package = Package(
    name: "MyProject",
    dependencies: [
        .Package(url: "https://github.com/jkandzi/Progress.swift", majorVersion: 0)
    ]
)

手动

您也可以将 Progress.swift 文件复制到您的 Xcode 项目中。

贡献

欢迎 fork 并提交 pull request。

作者

Justus Kandzi, justus.kandzi@gmail.com

许可

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