MGSegmentedProgressBar
支持多个分段的可动画进度条。
要求
- iOS 9.0+
- Xcode 10.0+
- Swift 4.2+
安装
CocoaPods
MGSegmentedProgressBar 通过 CocoaPods 提供。要安装它,只需将以下行添加到您的 Podfile
pod 'MGSegmentedProgressBar'
说明手册
将MGSegmentedProgressBar
目录下载并拖到您的项目中。
贡献
- 如果您发现了一个错误,请开启一个问题标签为“bug”。
- 如果您有一个新功能请求,请开启一个问题标签为“feature”。
- 如果您想贡献力量,请提交一个pull请求。
- 为了提交pull请求,请先fork此仓库,并从您的forked仓库提交一个pull请求。
- 在pull请求中提供详细的消息,说明您所修复的/增强的/添加的功能。
快速开始
-
将
MGSegmentedProgressBar
添加到您的视图层级中。 -
遵守
MGSegmentedProgressBarDataSource
规范(不要忘记设置进度条的dataSource
),并实现以下函数func numberOfSteps(in progressBar: MGSegmentedProgressBar) -> Int func numberOfSections(in progressBar: MGSegmentedProgressBar) -> Int func progressBar(_ progressBar: MGSegmentedProgressBar, barForSection section: Int) -> MGBarView
-
完成!
可以通过调用以下任何函数来更改每个部分的状态
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。