UICircularProgressRing 8.0.0

UICircularProgressRing 8.0.0

测试已测试
Lang语言 SwiftSwift
许可证 MIT
发布最后发布2021年2月
SPM支持 SPM

Luis PadronLuis Padron 维护。



  • Luis Padron

UICircularProgressRing

UICircularProgress 环是一个用于渲染圆形进度环和计时器的库。

  • 声明式:使用 SwiftUI (可选:已提供旧版 UIKit 版本),UICircularProgressRing 是声明式的,使其易于阅读和使用。
  • 可定制:旨在用于生产环境,所有视图都高度可定制,而不会失去易用性。这允许开发者量身定制外观、感觉和功能以符合需求。
  • 已测试:已在许多 生产应用程序 中进行了实战测试。UICircularProgressRing 也进行了全面的单元测试和快照测试,因此开发者可以放心使用。
  • 文档化:UICircularProgressRing 的公共 API 已达到 100% 文档化,这是在使用任何代码之前强制执行的。这是一份资源,可帮助新用户了解如何充分利用这个库。

iOS 14+ 注意事项

由于苹果公司已经添加了内置的 ProgressView,此库的需求即将结束。我的建议:如果您支持 iOS 14.0 并使用新的系统 ProgressView,则应使用该功能。此库将继续维护(修复关键错误等),但我们没有计划添加新功能,因为我们正在接近此库的生命周期结束。

安装

UICircularProgressRing 可用于两个主要版本:最新版本 v7.0+ 或旧版。旧版使用 UIKit 编写,需要部署目标 iOS 8.0+tvOS 10.0+。最新版本使用 SwiftUI 编写,需要 iOS 13.0+macOS 15.0+tvOS 13.0+WatchOS 2.0+

对于旧版安装,请按照这些说明操作。

Swift 包管理器

只需将此库添加到您的包规范或按照此处添加包依赖项的说明操作。

.package(
    url: "https://github.com/luispadron/UICircularProgressRing.git",
    .branch("master")
)

文档

此项目的公共 API 已 100% 文档化,这是我们花费很多时间工作的结果。请在提出任何问题、疑问等之前务必阅读文档。

阅读文档📖

用法

ProgressRing

ProgressRing 是一个视图,用于显示某些类型的进度,可以是表示为 [0, ∞) 范围内百分比的任何内容。百分比以十进制格式表示,即 0.5 表示 50%。进度可以是一个下载操作,用户测试分数的百分比等级等。以下是一个使用 ProgressRing 的简短示例,更多详情请阅读文档或尝试示例应用

struct ProgressRingExample: View {
    @State var progress = RingProgress.percent(0.44)

    var body: some View {
        VStack {
            ProgressRing(
                progress: $progress,
                axis: .top,
                clockwise: true,
                outerRingStyle: .init(
                    color: .color(.gray),
                    strokeStyle: .init(lineWidth: 20)
                ),
                innerRingStyle: .init(
                    color: .color(.green),
                    strokeStyle: .init(lineWidth: 10),
                    padding: 5
                )
            )
                .animation(.easeInOut(duration: 5))
                .padding(32)
        }
    }
}

An example image of a ProgressRing view rendered with a green inner circle, a gray outer circle and at 44 percent completion.

计时器环形图

计时器环形图 是一个用于显示时间的视图。您可以通过提供一个时间单位和持续时间来初始化计时器,例如: .seconds(60)。这意味着 计时器环形图 将运行 60 秒,填充内部环,直到最终达到整个外部环的 100%。下面是一个使用 计时器环形图 的简单例子,更多详情请阅读文档试用示例应用程序

struct TimerRingExample: View {
    @State var isPaused = false
    @State var isDone = false

    var body: some View {
        TimerRing(
            time: .minutes(1),
            delay: .seconds(0.5),
            innerRingStyle: .init(
                color: .color(.green),
                strokeStyle: .init(lineWidth: 16),
                padding: 8
            ),
            isPaused: $isTimerPaused,
            isDone: $isTimerDone
        ) { currentTime in
            Text(timeFormatter.string(from: currentTime))
                .font(.title)
                .bold()
        }
    }
}

A demo image of a timer ring view with a green inner ring, a gray outer ring and at twenty-seven seconds.

示例

使用 UICircularProgressRing 的应用程序