Home

Awesome

ButtonProgressBar-iOS

Version License Platform Contact

<img src="https://raw.githubusercontent.com/thePsguy/ButtonProgressBar-iOS/master/output_F2Ryon.gif" alt="GIF Preview"/>

Example

<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.