GitHub - mac-gallagher/MultiProgressView: A replacement for UIProgressView that...
source link: https://github.com/mac-gallagher/MultiProgressView
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
README.md
MultiProgressView
About
MultiProgressView is an animatable view that depicts multiple progresses over time. The MultiProgressView
class mimics UIProgressView
as much as possible while providing additional customizations.
Example
To run the example project, clone the repo and run the MultiProgressView-Example
target.
Requirements
- iOS 9.0+
- Xcode 10.0+
- Swift 4.2
Installation
CocoaPods
MultiProgressView is available through CocoaPods. To install it, simply add the following line to your Podfile:
pod 'MultiProgressView'
Carthage
MultiProgressView is also avaiable through Carthage. To install it, simply add the following line to your Cartfile:
github "mac-gallagher/MultiSwipeView"
Manual
Download and drop the MultiProgressView
directory into your project.
Usage
-
Add a
MultiProgressView
to your view hierarchy:let progressView = MultiProgressView() view.addSubview(progressView)
-
Conform your class to the
MultiProgressViewDataSource
protocol and set your progress view'sdataSource
:func numberOfSections(in progressView: MultiProgressView) -> Int func progressBar(_ progressView: MultiProgressView, viewForSection section: Int) -> ProgressViewSection
progressView.dataSource = self
-
Call the
setProgress
function to update your view's progress:progressView.setProgress(section: 0, to: 0.4)
Customization
MultiProgressView
Each MultiProgressView
exposes the following variables:
var dataSource: MultiProgressViewDataSource? var totalProgress: Float var cornerRadius: CGFloat = 0 var borderWidth: CGFloat = 0 var borderColor: UIColor? = .black var lineCap: LineCapType = .round var trackInset: CGFloat = 0 var trackBackgroundColor: UIColor? = .white var trackBorderColor: UIColor? = .black var trackBorderWidth: CGFloat = 0 var trackImageView: UIImageView? var trackTitleLabel: UILabel? var trackTitleEdgeInsets: UIEdgeInsets = .zero var trackTitleAlignment: AlignmentType = .center
ProgressViewSection
Each ProgressViewSection
exposes the following variables:
var imageView: UIImageView? var titleLabel: UILabel? var titleEdgeInsets: UIEdgeInsets = .zero var titleAlignment: AlignmentType = .center
Animating your progress
All of methods which alter the view's progress can be animated. For example:
UIView.animate(withDuration: 0.2) { self.progressView.setProgress(section: 0, to: 0.4) }
Contributing
- If you found a bug, open an issue and tag as bug.
- If you have a feature request, open an issue and tag as feature.
- If you want to contribute, submit a pull request.
- In order to submit a pull request, please fork this repo and submit a pull request from your forked repo.
- Have a detailed message as to what your pull request fixes/enhances/adds.
To-do
- Storyboard/
IBInspectable
support - Progress object (Foundation) support
Author
Mac Gallagher, [email protected].
License
MultiProgressView is available under the MIT License, see LICENSE for more infomation.
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK