Skip to content

A UIButton subclass that shows loader(UIActivityIndicator) for asynchronus tasks like API etc.

Notifications You must be signed in to change notification settings

udbhateja/UDProgressButton

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 

Repository files navigation

UDProgress Button

A simple UIButton subclass with inbuilt activity indicator to show loading or task in progress.

Installation

Drag and drop the file into your project folder. Make sure Copy Files is checked and file is added to target.

About

Properties
  • progressColor - Determines the color of activity indicator. Default is white. Can be changed from storyboard. Property is IBInspectable.
  • style - enum representing UIActivityIndicatorStyle. Default is .white
  • isAnimating - Returns true|false. True when inidicator is animating.
Methods
  • startAnimating() - Disables user interaction and shows activity indicator.
  • stopAnimating() - Enables user interaction and hides activity indicator.
  • set(enabled: Bool) - Enables the user interaction of button and changes the alpha but don't show/hide activity indicator.

Keep in mind to show/hide indicator on the main thread.

Note: When loader is animating, alpha of button is set to 0.5 to give a fade out effect.

Usage

Using Storyboard

Change the class of button to UDProgressButton in Identity inspector. Create @IBOultet and access properties and methods.

Using code
let frame = CGRect(x: 0, y:0, width: 175.0, height: 50.0)
let button = UDProgressButton(frame: frame)
button.progressColor = .red
button.startAnimating()
APIManager.login(email: "[email protected]") {
  [weak self] (success) in
  if success {
    DispatchQueue.main.async {
      self?.button.stopAnimating()
    }
  }
}

Thanks for using the widget 🙏

About

A UIButton subclass that shows loader(UIActivityIndicator) for asynchronus tasks like API etc.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages