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