CNLivePlayerProgressView.swift 3.6 KB
//
//  CNLivePlayerProgressView.swift
//  metaCode
//
//  Created by zx on 2023/11/24.
//

import Foundation

class CNLivePlayerProgressView:UIView{
    
    /**
     全部进度颜色
     */
    var _totalColor:UIColor?
    var totalColor:UIColor?{
        get{
            _totalColor
        }
        set{
            _totalColor = newValue
            self.backgroundColor = (_totalColor != nil) ? _totalColor : UIColor(white: 1, alpha: 0.2)
        }
    }
    /**
     缓冲进度颜色
     */
    var _bufferColor:UIColor?
    var bufferColor:UIColor?{
        get{
            _bufferColor
        }
        set{
            _bufferColor = newValue
            self.bufferView.backgroundColor = (_bufferColor != nil) ? _bufferColor : UIColor(white: 1, alpha: 0.4)
        }
    }
    /**
     当前进度颜色
     */
    var _currentColor:UIColor?
    var currentColor:UIColor?{
        get{
            _currentColor
        }
        set{
            _currentColor = newValue
            self.progressView.backgroundColor = (_currentColor != nil) ? _currentColor : UIColor(white: 1, alpha: 1)
        }
    }
    /**
     缓冲 0~1
     */
    var _bufferValue:CGFloat = 0.0
    var bufferValue:CGFloat{
        get{
            _bufferValue
        }
        set{
            _bufferValue = newValue
            if (_bufferValue > 1) {
                _bufferValue = 1
            }else if (_bufferValue < 0) {
                _bufferValue = 0
            }
            var bufferViewFrame = self.bufferView.frame
            bufferViewFrame.size.width = self.frame.size.width * _bufferValue
            self.bufferView.frame = bufferViewFrame
        }
    }
    /**
     进度 0~1
     */
    var _value:CGFloat = 0.0
    var value:CGFloat{
        get{
            _value
        }
        set{
            _value = newValue
            if (_value > 1) {
                _value = 1
            }else if (_value < 0) {
                _value = 0
            }
            var progressViewFrame = self.progressView.frame
            progressViewFrame.size.width = self.frame.size.width * _value
            self.progressView.frame = progressViewFrame
        }
    }
    //缓冲view
    lazy var bufferView :UIView = {
        let bufferView = UIView(frame: CGRect(x: 0, y: 0, width: self.width*self.bufferValue, height: self.height))
        bufferView.backgroundColor = (self.bufferColor != nil) ? self.bufferColor : UIColor(white: 1, alpha: 0.4)
        return bufferView
    }()

    //进度view
    lazy var progressView :UIView = {
        let progressView = UIView(frame: CGRect(x: 0, y: 0, width: self.width*self.value, height: self.height))
        progressView.backgroundColor = (self.currentColor != nil) ? self.currentColor : UIColor(white: 1, alpha: 1)
        return progressView
    }()
    
    // MARK: - init
    init() {
        super.init(frame: CGRectZero)
        self.backgroundColor = UIColor(white: 1, alpha: 0.2)
        self.initUI()
    }
    
    required init?(coder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
    
    override init(frame: CGRect) {
        super.init(frame: frame)
        self.backgroundColor = UIColor(white: 1, alpha: 0.2)
        self.initUI()
    }

    override func layoutSubviews() {
        super.layoutSubviews()
        self.bufferView.frame = CGRect(x: 0, y: 0, width: self.width * self.bufferValue, height: self.height)
        self.progressView.frame = CGRect(x: 0, y: 0, width: self.width * self.value, height: self.height)
    }

    // MARK: - initUI
    func initUI(){
        self.addSubview(self.bufferView)
        self.addSubview(self.progressView)
    }
    
}