Tusker/Tusker/Views/ProgressView.swift

48 lines
1.0 KiB
Swift

//
// 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()
}
}