jjuster / Progressable

Lightweight component to create an horizontal loading bar on any UIView

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Progressable

Build Status CocoaPods Compatible

Progressable is a simple component to help you add a simple animatable progress bar to any UIView.

Usage

3 simple steps to follow:

  • make your UIView conform to the Progressable protocol.
  • call self.initProgress() in init(frame: CGRect) and init?(coder aDecoder: NSCoder).
  • call self.layoutProgress() in func layoutSubviews().

API

After conforming to the Progressable protocol, you change the progress using:

  • the progress property: self.progressView.progress = 50 (values are from 0 to 100).
  • the setProgress(progress: CGFloat, withDuration duration: TimeInterval) method.

The following properties can be customized:

  • progressLineWidth: width of the progress bar.
  • progressColor: color of the progress bar.

Example

class ProgressSearchBar: UISearchBar, Progressable {
    override init(frame: CGRect) {
        super.init(frame: frame)
        self.initProgress()
    }

    required init?(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
        self.initProgress()
    }

    override func layoutSubviews() {
        super.layoutSubviews()
        self.layoutProgress()
    }
}

This example can be run using Progressable.xcodeproj.

Preview

progress

About

Lightweight component to create an horizontal loading bar on any UIView

License:MIT License


Languages

Language:Swift 88.3%Language:Ruby 7.2%Language:Objective-C 4.5%