|
@@ -10,71 +10,6 @@ import UIKit
|
|
|
import AVKit
|
|
|
import SnapKit
|
|
|
|
|
|
-
|
|
|
-class VideoProgressSlider: UISlider {
|
|
|
- // 增加触摸区域的范围(比可视区域大)
|
|
|
- private let touchAreaPadding: CGFloat = 20
|
|
|
-
|
|
|
- // 增加点击响应区域
|
|
|
- override func beginTracking(_ touch: UITouch, with event: UIEvent?) -> Bool {
|
|
|
- let width = self.bounds.size.width
|
|
|
- let tapPoint = touch.location(in: self)
|
|
|
- let tapValue = Float(tapPoint.x / width)
|
|
|
-
|
|
|
- self.setValue(tapValue, animated: true)
|
|
|
- self.sendActions(for: .valueChanged)
|
|
|
-
|
|
|
- return true
|
|
|
- }
|
|
|
-
|
|
|
- // 扩大触摸区域
|
|
|
- override func point(inside point: CGPoint, with event: UIEvent?) -> Bool {
|
|
|
- let bounds = self.bounds.insetBy(dx: -touchAreaPadding, dy: -touchAreaPadding)
|
|
|
- return bounds.contains(point)
|
|
|
- }
|
|
|
-
|
|
|
- // 扩大滑块的实际触摸区域(不影响视觉大小)
|
|
|
- override func thumbRect(forBounds bounds: CGRect, trackRect rect: CGRect, value: Float) -> CGRect {
|
|
|
- let visualThumbSize: CGFloat = 10 // 视觉上的大小
|
|
|
- let touchThumbSize: CGFloat = 20 // 实际触摸区域大小
|
|
|
-
|
|
|
- let defaultRect = super.thumbRect(forBounds: bounds, trackRect: rect, value: value)
|
|
|
-
|
|
|
- // 视觉上保持15x15大小
|
|
|
- let visualRect = CGRect(
|
|
|
- x: defaultRect.origin.x + (defaultRect.width - visualThumbSize)/2,
|
|
|
- y: defaultRect.origin.y + (defaultRect.height - visualThumbSize)/2,
|
|
|
- width: visualThumbSize,
|
|
|
- height: visualThumbSize
|
|
|
- )
|
|
|
-
|
|
|
- // 实际触摸区域更大(30x30)
|
|
|
- let touchRect = CGRect(
|
|
|
- x: defaultRect.origin.x + (defaultRect.width - touchThumbSize)/2,
|
|
|
- y: defaultRect.origin.y + (defaultRect.height - touchThumbSize)/2,
|
|
|
- width: touchThumbSize,
|
|
|
- height: touchThumbSize
|
|
|
- )
|
|
|
-
|
|
|
- // 保存实际触摸区域用于点击检测
|
|
|
- self.touchThumbRect = touchRect
|
|
|
-
|
|
|
- return visualRect
|
|
|
- }
|
|
|
-
|
|
|
- // 存储实际触摸区域
|
|
|
- private var touchThumbRect: CGRect = .zero
|
|
|
-
|
|
|
- // 轨道高度
|
|
|
- private let trackHeight: CGFloat = 3
|
|
|
-
|
|
|
- override func trackRect(forBounds bounds: CGRect) -> CGRect {
|
|
|
- var rect = super.trackRect(forBounds: bounds)
|
|
|
- rect.size.height = trackHeight
|
|
|
- return rect
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
class TSAIListVideoPlayerVC: UIViewController {
|
|
|
|
|
|
// MARK: - Properties
|
|
@@ -101,8 +36,8 @@ class TSAIListVideoPlayerVC: UIViewController {
|
|
|
return button
|
|
|
}()
|
|
|
|
|
|
- private lazy var progressSlider: UISlider = {
|
|
|
- let slider = UISlider()
|
|
|
+ private lazy var progressSlider: TSProgressSlider = {
|
|
|
+ let slider = TSProgressSlider()
|
|
|
slider.minimumTrackTintColor = UIColor.themeColor
|
|
|
slider.maximumTrackTintColor = .white.withAlphaComponent(0.2)
|
|
|
// slider.thumbTintColor = UIColor.white
|