Progress.swift 0.3.0

Progress.swift 0.3.0

测试已测试
语言语言 SwiftSwift
许可证 MIT
发布最后发布2017年10月
SwiftSwift版本3.0
SPM支持SPM

Justus Kandzi维护。



Progress.swift⌛️







demo gif

只需将您的循环中的 SequenceType 使用 Progress 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 元素

  • ProgressBarLine(实际的条。例如,“[————————— ]”)。
  • ProgressIndex(当前索引和总计数。例如,“2 of 3”)。
  • ProgressPercent(进度百分比。例如,“60%”)。
  • ProgressTimeEstimates(预计剩余时间和每秒的项目数。例如,“ETA: 00:00:02 (at 1.00 it/s)”)。
  • ProgressString(将任意字符串添加到进度条)。

安装

Swift 包管理器

要使用 Swift 包管理器安装,将以下内容添加到您的 Package.swift 中:

import PackageDescription

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

手动

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

贡献

欢迎您分叉并提交拉取请求。

作者

Justus Kandzi,[email protected]

许可证

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