MKRingProgressView
类似于 Apple Watch 上的活动应用的活动进度环视图
特性
- 进度动画
- 可自定义开始/结束和背景环颜色
- 自定义环宽度
- 自定义进度线结束样式
- 自定义进度线结束下的阴影
- 还可以显示超过 100%(或 360°)的进度值
安装
CocoaPods
要使用 CocoaPods 安装 MKRingProgressView
,请将以下行添加到 Podfile 中
pod 'MKRingProgressView'
Carthage
通过 Carthage 安装 MKRingProgressView
,请将以下行添加到您的 Cartfile 中:
github "maxkonovalov/MKRingProgressView"
用法
查看示例 Xcode 项目的说明。它包含 2 个目标:
- ProgressRingExample - 包含一个可调整参数的单个进度环的简单示例。
- ActivityRingsExample - 一个高级使用示例,复制苹果公司的 Activity 应用。它还包含了一些用于方便地将 3 个进度环放在一起的类。
Interface Builder
MKRingProgressView
可以在 Interface Builder 中设置。使用它时,将自定义视图类设置为 MKRingProgressView
。大多数控件参数都可以在 Interface Builder 中自定义。
代码
let ringProgressView = RingProgressView(frame: CGRect(x: 0, y: 100, width: 100, height: 100))
ringProgressView.startColor = .red
ringProgressView.endColor = .magenta
ringProgressView.ringWidth = 25
ringProgressView.progress = 0.0
view.addSubview(ringProgressView)
可以通过与使用 UIView
的基于块的动画相同的方式,对 progress
值进行动画。
UIView.animate(withDuration: 0.5) {
ringProgressView.progress = 1.0
}
性能
为了达到更好的性能,以下选项是可能的:
- 将
gradientImageScale
设置为较低的值如0.5
(默认为1.0
) - 将
startColor
和endColor
设置为相同的值 - 将
shadowOpacity
设置为0.0
- 将
allowsAntialiasing
设置为false
需求
- iOS 8.2
- tvOS 9.0
- Xcode 10, Swift 4+
许可证
MKRingProgressView
在MIT许可证下可用。有关更多信息,请参阅LICENSE文件。