测试已测试 | ✓ |
语言语言 | SwiftSwift |
许可证 | MIT |
发布最后发布 | 2017年10月 |
SwiftSwift版本 | 3.0 |
SPM支持SPM | ✓ |
由Justus Kandzi维护。
只需将您的循环中的 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 包管理器安装,将以下内容添加到您的 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 文件。