Progressable is a simple component to help you add a simple animatable progress bar to any UIView.
3 simple stops to follow:
- make your
UIView
conform to theProgressable
protocol. - call
self.initProgress()
ininit(frame: CGRect)
andinit?(coder aDecoder: NSCoder)
. - call
self.layoutProgress()
infunc layoutSubviews()
.
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.
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
.