LWPlayerSlider.swift 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. //
  2. // LWPlayerSlider.swift
  3. // SwiftBilibili
  4. //
  5. // Created by 罗文 on 2021/4/2.
  6. // Copyright © 2021年 罗文. All rights reserved.
  7. //
  8. import UIKit
  9. open class LWPlayerSlider: UISlider {
  10. open var progressView : UIProgressView
  11. public override init(frame: CGRect) {
  12. self.progressView = UIProgressView()
  13. super.init(frame: frame)
  14. configureSlider()
  15. }
  16. convenience init() {
  17. self.init(frame: CGRect.zero)
  18. }
  19. required public init?(coder aDecoder: NSCoder) {
  20. fatalError("init(coder:) has not been implemented")
  21. }
  22. override open func thumbRect(forBounds bounds: CGRect, trackRect rect: CGRect, value: Float) -> CGRect {
  23. let rect = super.thumbRect(forBounds: bounds, trackRect: rect, value: value)
  24. let newRect = CGRect(x: rect.origin.x, y: rect.origin.y + 1, width: rect.width, height: rect.height)
  25. return newRect
  26. }
  27. override open func trackRect(forBounds bounds: CGRect) -> CGRect {
  28. let rect = super.trackRect(forBounds: bounds)
  29. let newRect = CGRect(origin: rect.origin, size: CGSize(width: rect.size.width, height: 2.0))
  30. configureProgressView(newRect)
  31. return newRect
  32. }
  33. func configureSlider() {
  34. minimumValue = 0.0
  35. value = 0.0
  36. maximumTrackTintColor = UIColor.clear
  37. minimumTrackTintColor = UIColor.white
  38. // let thumbImage = VGPlayerUtils.imageResource("VGPlayer_ic_slider_thumb")
  39. // let normalThumbImage = VGPlayerUtils.imageSize(image: thumbImage!, scaledToSize: CGSize(width: 15, height: 15))
  40. // setThumbImage(normalThumbImage, for: .normal)
  41. // let highlightedThumbImage = VGPlayerUtils.imageSize(image: thumbImage!, scaledToSize: CGSize(width: 20, height: 20))
  42. // setThumbImage(highlightedThumbImage, for: .highlighted)
  43. backgroundColor = UIColor.clear
  44. progressView.tintColor = UIColor.white
  45. progressView.trackTintColor = UIColor.red
  46. }
  47. func configureProgressView(_ frame: CGRect) {
  48. progressView.frame = frame
  49. insertSubview(progressView, at: 0)
  50. }
  51. open func setProgress(_ progress: Float, animated: Bool) {
  52. progressView.setProgress(progress, animated: animated)
  53. }
  54. }