KDCircularProgress 1.5.4

KDCircularProgress 1.5.4

测试已测试
语言语言 SwiftSwift
许可 MIT
发布最新版本发布日期2019 年 4 月
SPM支持 Swift 包管理器

Kaan Dedeoglu 维护。



  • Kaan Dedeoglu

KDCircularProgress

Version License Platform

主要分支现在与 Swift 4 兼容。对于 Swift 3:swift3 分支。Swift 2.3 swift2.3 分支。Swift 2 swift2 分支。

KDCircularProgress 是一个用 Swift 编写的圆形进度视图。它使得在进度视图中实现渐变、光晕和动画成为可能。

KDCircularProgress 同样支持 IBInspectableIBDesignable,因此您可以在 Interface Builder 中进行配置和预览。

以下是一个示例

YouTube 链接

Screenshot

Screenshot Screenshot Screenshot Screenshot Screenshot Screenshot Screenshot

要求

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)

属性

progressColors: [UIColor]

用于生成进度渐变的颜色。您也可以使用变异性方法 setColors(UIColor...) 设置此属性。如果只有一个颜色,则使用填充;如果有多个颜色,则使用渐变。默认为白色填充。

angle: Int

进度的角度。介于 0 和 360(包含)之间。只需更改其值即可更改组件的可视进度。默认为 0。

startAngle: Int

进度开始的角角度。介于0和360(包括),然而您可以传递任何负数或正数,组件将自动将它们调整到所需范围。默认值为0。

clockwise: Bool

如果为true,表示顺时针;如果为false,表示逆时针。默认为true。

roundedCorners: Bool

如果为true,进度条末尾将被绘制为半圆半径。默认为false。

gradientRotateSpeed: CGFloat

描述基础渐变在每个完整周期内完成2π旋转的次数。建议使用整数。默认值为0。

glowAmount: CGFloat

辉光强度。介于0和1.0之间。默认为1.0。

glowMode: KDCircularProgressGlowMode

  • .forward - 辉光随角度成比例增加。0度没有辉光,360度时辉光全开。

  • .reverse - 辉光随角度成反比增加。0度时辉光全开,360度时没有辉光。

  • .constant - 恒定辉光。

  • .noGlow - 无光晕

默认值为 .forward

progressThickness: CGFloat

进度条的厚度。介于 0 和 1 之间。默认值为 0.4

trackThickness: CGFloat

背景轨道的厚度。介于 0 和 1 之间。默认值为 0.5

trackColor: UIColor

背景轨道的颜色。默认值为 UIColor.blackColor()

progressInsideFillColor: UIColor

圆圈中心的颜色。默认值为 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

以下授予任何获得此软件及其相关文档副本(以下简称“软件”)的个人免费使用软件的权利,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售软件副本的权利,以及允许软件提供方进行此类操作的权力,但需遵守以下条件

上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。

软件按“原样”提供,不提供任何形式的保证,无论是明示的、暗示的还是侵权保证,包括但不限于适销性、特定用途的适用性和非侵权性。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任负责,这些索赔、损害或其他责任不论源于合同、侵权或其他方式,均与软件或其使用或其他相关事宜有关。