CustomProgress.swift 1.33 KB
//
//  CustomProgress.swift
//  Twear
//
//  Created by yangbin on 2021/12/21.
//

import UIKit

class CustomProgress: UIView {

    @IBOutlet weak var trackViewWidthLayout: NSLayoutConstraint!
    @IBOutlet weak var trackView: UIView!
    @IBOutlet weak var label: UILabel!
    @IBOutlet weak var backView: UIView!
    
    @IBInspectable
    private var cornerRadius: CGFloat = 0 {
        didSet {
            layer.cornerRadius = cornerRadius
            layer.masksToBounds = cornerRadius > 0
        }
    }
    
    var value: Int = 0 {
        didSet {
            refreshUI()
        }
    }
    
    override init(frame: CGRect) {
        super.init(frame: frame)
        initFromNib()

    }
    
    
    required init?(coder: NSCoder) {
        super.init(coder: coder)
        initFromNib()

    }
    override class func awakeFromNib() {
        super.awakeFromNib()
       
    }
    
    private func initFromNib() {
        if let view = UINib(nibName: "CustomProgress", bundle: Bundle(for: type(of: self))).instantiate(withOwner: self, options: nil).first as? UIView {
            view.frame = bounds
            self.addSubview(view)
        }
    }
    
    override func layoutSubviews() {
        refreshUI()
    }
    
    private func refreshUI() {
        trackViewWidthLayout.constant = self.frame.width * CGFloat(value)/100
    }
    
}