KDCircularProgress
主要分支现在与 Swift 4 兼容。对于 Swift 3:
swift3
分支。Swift 2.3swift2.3
分支。Swift 2swift2
分支。
KDCircularProgress
是一个用 Swift 编写的圆形进度视图。它使得在进度视图中实现渐变、光晕和动画成为可能。
KDCircularProgress 同样支持 IBInspectable
和 IBDesignable
,因此您可以在 Interface Builder
中进行配置和预览。
以下是一个示例
要求
KDCircularProgress
需要 iOS 8+,尽管已经有一段时间没有测试过 iOS 8 的支持。
安装
- 它位于 CocoaPods 中,名称为(您猜对了!)KDCircularProgress
- 只需将
KDCircularProgress.swift
拖动到您的项目中。Carthage 支持正在待办事项列表中。
CocoaPods
KDCircularProgress 可通过 CocoaPods 获取。要安装它,只需将以下行添加到您的 Podfile 中:
pod 'KDCircularProgress'
然后运行
$ pod install
Carthage
将行 github "kaandedeoglu/KDCircularProgress"
添加到您的 Cartfile
中,然后运行以下命令:
carthage update
手动方式
只需将 KDCircularProgress.swift
拖到您的项目中。
示例代码
以下是一个创建并设置 KCircularProgress
实例的代码示例,它提供与示例图片中进度相似的配置。
progress = KDCircularProgress(frame: CGRect(x: 0, y: 0, width: 300, height: 300))
progress.startAngle = -90
progress.progressThickness = 0.2
progress.trackThickness = 0.6
progress.clockwise = true
progress.gradientRotateSpeed = 2
progress.roundedCorners = false
progress.glowMode = .forward
progress.glowAmount = 0.9
progress.set(colors: UIColor.cyan ,UIColor.white, UIColor.magenta, UIColor.white, UIColor.orange)
progress.center = CGPoint(x: view.center.x, y: view.center.y + 25)
view.addSubview(progress)
属性
[UIColor]
progressColors: 用于生成进度渐变的颜色。您也可以使用变异性方法 setColors(UIColor...)
设置此属性。如果只有一个颜色,则使用填充;如果有多个颜色,则使用渐变。默认为白色填充。
Int
angle: 进度的角度。介于 0 和 360(包含)之间。只需更改其值即可更改组件的可视进度。默认为 0。
Int
startAngle: 进度开始的角角度。介于0和360(包括),然而您可以传递任何负数或正数,组件将自动将它们调整到所需范围。默认值为0。
Bool
clockwise: 如果为true,表示顺时针;如果为false,表示逆时针。默认为true。
Bool
roundedCorners: 如果为true,进度条末尾将被绘制为半圆半径。默认为false。
CGFloat
gradientRotateSpeed: 描述基础渐变在每个完整周期内完成2π旋转的次数。建议使用整数。默认值为0。
CGFloat
glowAmount: 辉光强度。介于0和1.0之间。默认为1.0。
KDCircularProgressGlowMode
glowMode: -
.forward - 辉光随角度成比例增加。0度没有辉光,360度时辉光全开。
-
.reverse - 辉光随角度成反比增加。0度时辉光全开,360度时没有辉光。
-
.constant - 恒定辉光。
-
.noGlow - 无光晕
默认值为 .forward
CGFloat
progressThickness: 进度条的厚度。介于 0 和 1 之间。默认值为 0.4
CGFloat
trackThickness: 背景轨道的厚度。介于 0 和 1 之间。默认值为 0.5
UIColor
trackColor: 背景轨道的颜色。默认值为 UIColor.blackColor()
。
UIColor
progressInsideFillColor: 圆圈中心的颜色。默认值为 UIColor.clearColor()
。
方法
override public init(frame: CGRect)
使用一个框架进行初始化。请仅使用正方形框架。
convenience public init(frame:CGRect, colors: UIColor...)
使用一个框架和渐变颜色进行初始化。
public func set(colors: UIColor...)
public func set(colors: [UIColor])
设置进度渐变的颜色。
public func animateFromAngle(fromAngle: Int, toAngle: Int, duration: NSTimeInterval, relativeDuration: Bool = true, completion: ((Bool) -> Void)?)
从初始值到最终值进行进度动画,动画完成后将触发一个完成块。 relativeDuration
- 指定持续时间是针对特定动画还是使整个转动完成的时间。
public func animateToAngle(toAngle: Int, duration: NSTimeInterval, completion: ((Bool) -> Void)?)
从当前状态到目标值进行进度动画。
public func pauseAnimation()
暂停动画,如果有的话。
public func isAnimating() -> Bool
检查是否有活动动画。
杂项
在渐变中使用浅色能获得更好的效果。如前所述,请使用方形框架。矩形框架未经过测试,可能产生非预期结果。
联系
如需进一步讨论,请给我发邮件。
许可
MIT许可证 (MIT)
版权所有 (c) 2017 Kaan Dedeoglu
以下授予任何获得此软件及其相关文档副本(以下简称“软件”)的个人免费使用软件的权利,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售软件副本的权利,以及允许软件提供方进行此类操作的权力,但需遵守以下条件
上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。
软件按“原样”提供,不提供任何形式的保证,无论是明示的、暗示的还是侵权保证,包括但不限于适销性、特定用途的适用性和非侵权性。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任负责,这些索赔、损害或其他责任不论源于合同、侵权或其他方式,均与软件或其使用或其他相关事宜有关。