CNLivePlayerProgressView.swift
3.6 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
//
// 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)
}
}