Skip to content

Instantly share code, notes, and snippets.

@anuragajwani
Created October 18, 2020 21:31
Show Gist options
  • Save anuragajwani/69de430bc1a2d7359efd7edfa35ee3f9 to your computer and use it in GitHub Desktop.
Save anuragajwani/69de430bc1a2d7359efd7edfa35ee3f9 to your computer and use it in GitHub Desktop.
Non-accessible progress bar view
import UIKit
class ProgressBarView: UIView {
var progress: CGFloat = 0.0 {
didSet {
self.setNeedsDisplay()
}
}
var progressColor: UIColor = .black {
didSet {
self.progressLayer.backgroundColor = self.progressColor.cgColor
}
}
private let progressLayer = CALayer()
override init(frame: CGRect) {
super.init(frame: frame)
self.commonInit()
}
required init?(coder: NSCoder) {
super.init(coder: coder)
self.commonInit()
}
private func commonInit() {
self.layer.addSublayer(self.progressLayer)
progressLayer.backgroundColor = UIColor.systemBlue.cgColor
}
override func draw(_ rect: CGRect) {
let shapeLayer = CAShapeLayer()
shapeLayer.path = UIBezierPath(roundedRect: rect, cornerRadius: 5).cgPath
layer.mask = shapeLayer
let progressRect = CGRect(origin: .zero, size: CGSize(width: rect.width * self.progress, height: rect.height))
self.progressLayer.frame = progressRect
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment