48 lines
1.0 KiB
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()
|
|
}
|
|
|
|
}
|