KDCircularProgress
是一个用 Swift 编写的圆形进度视图。它允许在进度视图中使用渐变,以及发光和动画效果。
KDCircularProgress 还支持 IBInspectable
和 IBDesignable
,因此您可以在 Interface Builder
中配置和预览。
这是一个例子
KDCircularProgress
需要 iOS 8+,尽管 iOS 8 的支持已经有一段时间没有经过测试。
KDCircularProgress.swift
拖到您的项目中即可。 Carthage
支持正在待办事项列表中。KDCircularProgress 可通过 CocoaPods 获得。 要安装它,只需将以下行添加到您的 Podfile 中
pod 'KDCircularProgress'
然后运行
$ pod install
将 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)
用于生成进度渐变的颜色。您还可以使用可变参数 setColors(UIColor...)
方法设置此属性。只有在颜色多于一种时才使用渐变。否则使用填充。默认值为白色填充。
进度的角度。介于 0 和 360(包括 0 和 360)。只需更改其值即可更改组件的视觉进度。默认为 0。
进度开始的角度。介于 0 和 360(包括 0 和 360)之间,但是您可以传递任何负值或正值,组件会自动将它们调整到所需范围内。默认为 0。
如果为 true,则为顺时针;如果为 false,则为逆时针。默认为 true。
如果为 true,则进度轨迹的末端将以半圆半径绘制。默认为 false。
描述了对于进度的每个完整周期,底层渐变将执行 2π 旋转的次数。建议使用整数值。默认为 0。
发光的强度。介于 0 和 1.0 之间。默认为 1.0。
.forward - 发光与角度成正比增加。0 度时无发光,360 度时全发光。
.reverse - 发光与角度成反比增加。0 度时全发光,360 度时无发光。
.constant - 恒定发光。
.noGlow - 无发光
默认为 .forward
进度的厚度。介于 0 和 1 之间。默认为 0.4
背景轨迹的厚度。介于 0 和 1 之间。默认为 0.5
背景轨迹的颜色。默认为 UIColor.blackColor()
。
圆圈中心的颜色。默认为 UIColor.clearColor()
。
override public init(frame: CGRect)
使用 frame 初始化。请仅使用正方形 frame。
convenience public init(frame:CGRect, colors: UIColor...)
使用 frame 和渐变颜色初始化。
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
检查是否存在活动动画。
在渐变中使用浅色可以获得更好的效果。如前所述,使用正方形 frame。矩形 frame 未经测试,可能会产生意外结果。
如果您想进一步讨论任何问题,请给我发送电子邮件。
MIT 许可证 (MIT)
版权所有 (c) 2017 Kaan Dedeoglu
特此授予任何获得本软件及相关文档文件(“软件”)副本的人员免费许可,以无限制地处理本软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售本软件副本的权利,并允许向其提供本软件的人员遵守以下条件
上述版权声明和本许可声明应包含在本软件的所有副本或重要部分中。
本软件按“原样”提供,不提供任何形式的明示或暗示的保证,包括但不限于适销性、特定用途适用性和不侵权的保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任承担责任,无论是在合同、侵权或其他方面,由本软件或本软件的使用或其他处理引起的或与之相关的。