Progress.swift ⌛

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

demo gif

只需用 Progress SequenceType 封装循环中的 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 文件。