ALProgressRing 1.1.0

ALProgressRing 1.1.0

未声明的用户 维护。



  • 作者:
  • Alexandr Guzenko

ALProgressRing

关于

ALProgressRing - 是一个用于显示圆形进度环的库。

它易于定制。您可以调整环形渐变、线宽、阴影等。

此外,为这个库我添加了大约20个动画功能,更多细节在 动画 部分



如果您喜欢这个库,请别忘了给它打一个 ★ 星号,这会帮助我在其开发中。



导航

需求

  • iOS 10.0 +
  • Swift 4.2 +

安装

Swift 包管理器

Swift 包管理器(Swift Package Manager)是一个用于管理 Swift 代码分发的工具。它与 Swift 构建系统集成,以自动化下载、编译和链接依赖的过程。

要集成 ALProgressRing,请点击 文件 -> Swift 包 -> 添加包依赖 并输入

https://github.com/alxrguz/ALProgressRing

CocoaPods

ALProgressRing 通过 CocoaPods 可用。要安装它,请简单地将以下行添加到 Podfile 文件中

pod 'ALProgressRing'

手动

如果你不喜欢使用上述任一依赖管理器,可以手动将 ALProgressRing 集成到项目中。将 Source/ALProgressRing 文件夹放入你的 Xcode 项目中。

使用

快速入门

import ALProgressRing

class MyViewController: UIViewController {

    private lazy var progressRing = ALProgressRing()

    override func viewDidLoad() {
        super.viewDidLoad()

        view.addSubview(progressRing)
        // Setup layout
        progressRing.translatesAutoresizingMaskIntoConstraints = false
        progressRing.centerXAnchor.constraint(equalTo: view.centerXAnchor).isActive = true
        progressRing.centerYAnchor.constraint(equalTo: view.centerYAnchor).isActive = true
      	// Make sure to set the view size
        progressRing.widthAnchor.constraint(equalToConstant: 180).isActive = true
        progressRing.heightAnchor.constraint(equalToConstant: 180).isActive = true
        
        progressRing.setProgress(0.8, animated: true)
    }
}

自定义

颜色

您可以根据状态自定义按钮、标题和指示器的颜色。

/// Set track color
/// If you don't need a gradient, just set the same values for `startColor` and `endColor`
progressRing.startColor = .systemPink 
progressRing.endColor = .systemRed 

/// Set groove color
progressRing.endColor = .systemRed 

布局

progressRing.startAngle = -.pi / 2 // The start angle of the ring to begin drawing.
progressRing.endAngle = 1.5 * .pi // The end angle of the ring to end drawing. 
progressRing.startGradientPoint = .init(x: 0.5, y: 0) // The starting poin of the gradient
progressRing.endGradientPoint = .init(x: 0.5, y: 1) // The ending position of the gradient.

// Sets the line width for progress ring and "groove" ring
progressRing.lineWidth = 10
// Or, if you need to separate these parameters, use
progressRing.ringWidth = 10 
progressRing.grooveWidth = 8 

动画

progressRing.duration = 2 // Duration of the ring's fill animation.
progressRing.timingFunction = .easeOutExpo // Timing function of the ring's fill animation.

/// The following use of setProgress (_ value: Int, animated: Bool) 
/// will take into account the new parameters 
progressRing.setProgress(0.8, animated: true)

让我们看看timingFunction参数,它是一种ALTimingFunction类型,包括以下类型的动画

这里有一个很好的快速参考表:在这里.

许可协议

ALProgressRing 采用MIT许可协议。有关更多信息,请参阅LICENSE文件。