Awesome
ButtonProgressBar-iOS
<img src="https://raw.githubusercontent.com/thePsguy/ButtonProgressBar-iOS/master/output_F2Ryon.gif" alt="GIF Preview"/>Example
-
For LIVE PREVIEW on Appetize in your browser itself, click here.
-
To run the example project, clone the repo, and run
pod install
from the Example directory first.
<img src="https://raw.githubusercontent.com/thePsguy/ButtonProgressBar-iOS/master/SimulatorScreenShot.png" alt="Simulator Screen" width="200"/> <img src="https://raw.githubusercontent.com/thePsguy/ButtonProgressBar-iOS/master/preview.gif" alt="GIF Preview" width="350"/>
Requirements
iOS > 7.0
Installation
ButtonProgressBar-iOS is available through CocoaPods. To install it, simply add the following line to your Podfile:
pod 'ButtonProgressBar-iOS'
Usage
import ButtonProgressBar_iOS
<hr>
Initialize just like you would any other UIButton:
var progressButton = ButtonProgressBar(frame: CGRect)
view.addSubview(progressButton)
<hr>
Since this is a UIButton subclass, targets and labels can be set in the same way:
progressButton.addTarget(nil, action: #selector(self.tapped), for: .touchUpInside)
progressButton.setTitle("Download", for: .normal)
<hr>
The completion image can be set with;
This image must be set since no default exists.
setCompletionImage(image: UIImage)
<hr>
Indeterminate loading can be handled with the following functions:
startIndeterminate(withTimePeriod time: TimeInterval)
startIndeterminate(withTimePeriod time: TimeInterval, andTimePadding padding: TimeInterval)
/*
Time Padding is the duration (default 0.5), in seconds, before starting the next cycle.
Time Period is the total time (animation + padding) that 1 cycle of the loading takes.
*/
stopIndeterminate() //Stops the indeterminate loading.
<hr>
For determinate usage or otherwise, progress can be set with:
setProgress(progress: CGFloat, _ animated: Bool)
/*
Progress ranges from 0.0 to 1.0
If animated is true, linearly animates to progress.
*/
resetProgress() //Set progress to 0.0 unanimated.
<hr>
Set the progress and background colors:
setBackgroundColor(color: UIColor)
setProgressColor(color: UIColor)
<hr>
To explicitly show/hide the title / image:
hideTitle(_ hidden: Bool)
hideImage(_ hidden: Bool)
<hr>
Stop indeterminate loading if active, set progress to 1.0 animated, and display completion image if set.
Needs to be called explicitly when loading determinate as well.
triggerCompletion()
<hr>
Author
Pushkar Sharma, thePsguy@icloud.com
<hr>Inspiration from Dribbble
Android version available!
License
ButtonProgressBar-iOS is available under the MIT license. See the LICENSE file for more info.