// // ProgressView.swift // Tusker // // Created by Shadowfacts on 9/7/18. // Copyright © 2018 Shadowfacts. All rights reserved. // import UIKit @IBDesignable class ProgressView: UIView { @IBInspectable var progress: CGFloat = 0 { didSet { updateSublayer() } } var shapeLayer: CAShapeLayer! required init?(coder aDecoder: NSCoder) { super.init(coder: aDecoder) updateSublayer() } override init(frame: CGRect) { super.init(frame: frame) updateSublayer() } func updateSublayer() { if shapeLayer == nil { shapeLayer = CAShapeLayer() shapeLayer.fillColor = tintColor.cgColor layer.addSublayer(shapeLayer) } let rect = CGRect(x: 0, y: 0, width: frame.width * progress, height: frame.height) shapeLayer.path = CGPath(rect: rect, transform: nil) } override func layoutSubviews() { updateSublayer() super.layoutSubviews() } }