MSCircularProgressView 1.2.0

MSCircularProgressView 1.2.0

测试已测试
语言语言 SwiftSwift
许可证 MIT
发布上次发布2019年4月
SPM支持 SPM

Michael Schloss维护。



  • 作者
  • Michael Schloss

MSProgressView

一个简单的圆形进度指示器,具有完成、成功和错误反馈

Build Status

注意: MSProgressView 使用 Swift 5 编写,这要求 Xcode 10.2+。

设置

手动设置

  1. 要使用 MSProgressView,请下载 MSProgressView.swift 并将其拖入 Xcode。
  2. 就这样。如果你使用 Objective-C 编写项目,你需要在你的 .m 文件中导入 XXX-Swift.h,其中 XXX 是你的项目名称。

CocoaPods

MSProgressView可以在CocoaPods中找到,名为MSCircularProgressView

Swift

-- AutoLayout --

let progressView = MSProgressView()
progressView.start()
view.addSubview(progressView)
NSLayoutConstraint.activate([...])
...

--------------------
-- Non-AutoLayout --

let progressView = MSProgressView(frame: CGRect(x: ..., y: ..., width: ..., height: ...))
progressView.start()
view.addSubview(progressView)
...

###Objective-C

-- AutoLayout --

MSProgressView *progressView = [[MSProgressView alloc] init];
[progressView start];
[view addSubview: progressView];
[NSLayoutConstraint activate: @[...]];
...

--------------------
-- Non AutoLayout -- 

MSProgressView *progressView = [[MSProgressView alloc] initWithFrame: CGRectMake(..., ..., ..., ...)];
[progressView start];
[self.view addSubview: progressView];
...

注意: MSProgressView被标记为@IBDesignable。您也可以在Interface Builder中初始化,并自定义以下一些选项

选项

MSProgressView完全可定制。为了快速设置,提供了两个变量供您使用

barColor

进度条的颜色。如果您想动画化这个变化,请使用setBar(color:, animated:)

默认是white

barWidth

进度条的宽度。如果您想动画化这个变化,请使用setBar(width:, animated:)

默认是5.0

之前的选项被标记为@IBInspectable,可以在Interface Builder中更改

progressObject

您可以将一个 Progress 对象附加到 MSProgressView

当您更新 totalUnitCount 和/或 completedUnitCount 时,MSProgressView 会自动更新其显示

  • 重要:如果 isIndeterminate 评估为 true,则 MSProgressView 不会响应属性变化而更新

currentProgress

当前视图的进度。(只读)

static completionAnimationTime

调用 finish(_:) 时动画运行所需的时间。使用此值来确定延迟执行任何可能与之重叠的其他动画多长时间。(只读)

static preferredHumanDelay

附加到 completionAnimationTime 末尾的小缓冲,以允许在所有动画完成后查看最终状态.(只读)

方法

start()

将圆形缺口条围绕圆形无限旋转。用于不确定加载时间的情况

如果调用了以下任何一种方法,则此方法不执行任何操作

  • setProgress(_:animated:)
  • finish(_:animated:)

stop()

停止在无限圆形上旋转圆形缺口条。使用此方法暂停旋转

如果调用了以下任何一种方法,则此方法不执行任何操作

  • start()
  • setProgress(_:animated:)
  • finish(_:animated:)

finish(_:)

立即终止进度视图的加载状态,并响应指定的完成状态

状态变化是动画的。您可以使用类变量 completionAnimationTime 来获取动画执行中任何可能重叠的其他动画的延迟时间间隔

  • completion: 进度视图应反映的完成状态。有关更多信息,请参阅 MSProgressViewCompletion 的文档
  • animated: 是否显示应动画化

reset()

立即终止进度视图的状态,并将其重置为其原始状态。

调用 reset 后,您可以调用任何其他方法(例如重启下载)。重置不是动画化进行

  • 注意:如果提供了 progressObject,则 MSProgressView 不会 丢失对它的附件

设置器

setBar(color:, animated:)

设置旋转和进度条颜色

  • color - 设置进度条的颜色
  • animated - 是否应该以动画效果改变颜色

setBar(width:, animated:)

设置旋转和进度条宽度

  • width - 设置进度条的宽度
  • animated - 是否应该以动画效果改变宽度

setProgress(_:animated:)

在视图中显示增长的圆形进度条。用于确定加载时间

如果进度视图正在显示不确定的加载,圆形进度条将被移除并替换

如果调用了`finish(_:animated:)`,此方法不执行任何操作

  • newProgress: 视图应显示的总进度
  • animated: 是否应该以动画效果改变进度。默认值为`true`

枚举

MSProgressViewCompletion

指示完成类型的常量

success

显示一个带勾选的绿色圆圈

failure

显示一个带“✕”的红圈

变更日志

1.2.0

  • 改进了 Progress 对象跟踪
  • 优化成功和失败的色彩,使对比度更低
  • 现在从父视图中移除 MSProgressView 将自动停止任何动画
  • 您现在可以在任何调用中禁用动画(除非使用 Progress 对象)
  • MSProgressView 现在可以被子类化
  • 将进度增加动画移动到使用 UIViewPropertyAnimator。这提供可中断的进度改变,之前会导致令人不快的动画跳跃