MGSegmentedProgressBar 0.4.1

MGSegmentedProgressBar 0.4.1

Mac Gallagher 维护。




  • 作者
  • Mac Gallagher

MGSegmentedProgressBar

Swift-Version CocoaPods license CocoaPods

支持多个分段的可动画进度条。

ProgressBar


要求

  • iOS 9.0+
  • Xcode 10.0+
  • Swift 4.2+

安装

CocoaPods

MGSegmentedProgressBar 通过 CocoaPods 提供。要安装它,只需将以下行添加到您的 Podfile

pod 'MGSegmentedProgressBar'

说明手册

MGSegmentedProgressBar目录下载并拖到您的项目中。

贡献

  • 如果您发现了一个错误,请开启一个问题标签为“bug”。
  • 如果您有一个新功能请求,请开启一个问题标签为“feature”。
  • 如果您想贡献力量,请提交一个pull请求。
    • 为了提交pull请求,请先fork此仓库,并从您的forked仓库提交一个pull请求。
    • 在pull请求中提供详细的消息,说明您所修复的/增强的/添加的功能。

快速开始

  1. MGSegmentedProgressBar添加到您的视图层级中。

  2. 遵守MGSegmentedProgressBarDataSource规范(不要忘记设置进度条的dataSource),并实现以下函数

    func numberOfSteps(in progressBar: MGSegmentedProgressBar) -> Int
    func numberOfSections(in progressBar: MGSegmentedProgressBar) -> Int
    func progressBar(_ progressBar: MGSegmentedProgressBar, barForSection section: Int) -> MGBarView
  3. 完成!

可以通过调用以下任何函数来更改每个部分的状态

func setProgress(forSection section: Int, steps: Int) //sets the progress
func advance(section: Int, by numberOfSteps: Int = 1) //advances the existing progress 
func resetProgress() //sets the progress of all sections to zero

架构

MGSegmentedProgressBar框架有两个主要组件。第一个是MGSegmentedProgressBar,它显示各个条形区域,负责维护整体进度和每个条形的宽度控制。第二个组件是条形区域本身。

MGSegmentedProgressBar

每个MGSegmentedProgressBar对外暴露以下变量

var dataSource: MGSegmentedProgressBarDataSource?

var cornerRadius: CGFloat = 0
var borderWidth: CGFloat = 0
var borderColor: UIColor? = .black
var lineCap: LineCapType = .round 

var barInset: CGFloat = 0
var barBackgroundColor: UIColor? = .white
var barBorderColor: UIColor? = .black
var barBorderWidth: CGFloat = 0
var barTitleLabel: UILabel?
var barTitleEdgeInsets: UIEdgeInsets = .zero
var barTitleAlignment: AlignmentType = .center

动画化进度

所有改变进度的方法都可以轻松地进行动画处理。例如,

UIView.animate(withDuration: 0.2) {
    self.progressBar.setProgress(forSection: 0, steps: 4)
}

ProgressBarSection

每个 ProgressBarSection 都暴露以下变量

var titleLabel: UILabel?
var titleEdgeInsets: UIEdgeInsets = .zero
var titleAlignment: AlignmentType = .center

作者

Mac Gallagher, [email protected]

许可证

MGSegmentedProgressBar 在 MIT 许可证 下提供,有关更多信息请参阅 LICENSE。