浏览代码

自定义速度 UI 界面

jsonwang 3 年之前
父节点
当前提交
2713dced63
共有 1 个文件被更改,包括 145 次插入23 次删除
  1. 145 23
      BFFramework/Classes/Stuckpoint/View/PQCustomSpeedSettingView.swift

+ 145 - 23
BFFramework/Classes/Stuckpoint/View/PQCustomSpeedSettingView.swift

@@ -10,13 +10,11 @@ import Foundation
 class PQCustomSpeedSettingView: UIView {
     
     //左上角返回
-    lazy var backBtn: UIButton = {
-        let backBtn = UIButton(type: .custom)
+    lazy var backBtn: BFUIButton = {
+        let backBtn = BFUIButton(type: .custom)
         backBtn.addTarget(self, action: #selector(backClick(sender:)), for: .touchUpInside)
-        backBtn.setImage(UIImage(named: "customSpeedClosed"), for: .normal)
+        backBtn.setImage(UIImage.init().BF_Image(named:  "customSpeedClosed"), for: .normal)
         backBtn.adjustsImageWhenHighlighted = false
-        backBtn.backgroundColor = UIColor.hexColor(hexadecimal: "#3DC1C1")
-        backBtn.addCorner(corner: 30)
         return backBtn
     }()
     
@@ -36,8 +34,9 @@ class PQCustomSpeedSettingView: UIView {
         confirmBtn.setTitle("确定", for: .normal)
         confirmBtn.setTitleColor(.white, for: .normal)
         confirmBtn.addTarget(self, action: #selector(confirmClick(sender:)), for: .touchUpInside)
-        confirmBtn.backgroundColor = UIColor.hexColor(hexadecimal: "#3DC1C1")
+        confirmBtn.backgroundColor = UIColor.hexColor(hexadecimal: PQBFConfig.shared.styleColor.rawValue)
         confirmBtn.titleLabel?.font = UIFont.systemFont(ofSize: 17, weight: .medium)
+        confirmBtn.addCorner(corner: 11)
         return confirmBtn
     }()
  
@@ -45,38 +44,133 @@ class PQCustomSpeedSettingView: UIView {
     public lazy var cancleBtn: UIButton = {
         let cancleBtn = UIButton(type: .custom)
         cancleBtn.setTitle("取消", for: .normal)
-        cancleBtn.setTitleColor(UIColor.hexColor(hexadecimal: "#3DC1C1"), for: .normal)
+        cancleBtn.setTitleColor(UIColor.hexColor(hexadecimal: PQBFConfig.shared.styleColor.rawValue), for: .normal)
         cancleBtn.backgroundColor = UIColor.hexColor(hexadecimal: "#F9F9F9")
         cancleBtn.addTarget(self, action: #selector(backClick(sender:)), for: .touchUpInside)
         cancleBtn.titleLabel?.font = UIFont.systemFont(ofSize: 17, weight: .medium)
+        cancleBtn.addCorner(corner: 11)
         return cancleBtn
     }()
     
     //提示1
     lazy var customSpeedFastView: UIImageView = {
-        let customSpeedFastView = UIImageView(image: UIImage(named: "customSpeedFast"))
+        let customSpeedFastView = UIImageView(image:         UIImage.init().BF_Image(named:  "customSpeedFast"))
         return customSpeedFastView
     }()
     //提示2
     lazy var customSpeedSlowView: UIImageView = {
-        let customSpeedSlowView = UIImageView(image: UIImage(named: "customSpeedSlow"))
+        let customSpeedSlowView = UIImageView(image:  UIImage.init().BF_Image(named:  "customSpeedSlow"))
         return customSpeedSlowView
     }()
+ 
+    lazy var fastSlider: BFUISlider = {
+        let fastSlider = BFUISlider()
+        let thbImage =  UIImage.init().BF_Image(named:  "sliderTHBPin")
+        fastSlider.setMinimumTrackImage(thbImage, for: .normal)
+        fastSlider.setMaximumTrackImage(thbImage, for: .normal)
+        fastSlider.setThumbImage(thbImage, for: .highlighted)
+        fastSlider.setThumbImage(thbImage, for: .normal)
+        fastSlider.maximumTrackTintColor = UIColor.hexColor(hexadecimal: "#E6E8E8")
+        fastSlider.minimumTrackTintColor = UIColor.hexColor(hexadecimal: PQBFConfig.shared.styleColor.rawValue)
+        fastSlider.tag = 10
+//        speechSlidView.addTarget(self, action: #selector(sliderTouchEnded(sender:)), for: .touchUpInside)
+        fastSlider.maximumValue = 8
+        fastSlider.minimumValue = 0.2
+        fastSlider.valueTextColor =  UIColor.hexColor(hexadecimal: PQBFConfig.shared.styleColor.rawValue)
+        fastSlider.value = 0.2
 
+        return fastSlider
+    }()
+    
+    lazy var slowSlider: BFUISlider = {
+        let slowSlider = BFUISlider()
+        let thbImage =  UIImage.init().BF_Image(named:  "sliderTHBPin")
+        slowSlider.setMinimumTrackImage(thbImage, for: .normal)
+        slowSlider.setMaximumTrackImage(thbImage, for: .normal)
+        slowSlider.setThumbImage(thbImage, for: .highlighted)
+        slowSlider.setThumbImage(thbImage, for: .normal)
+        slowSlider.maximumTrackTintColor = UIColor.hexColor(hexadecimal: "#E6E8E8")
+        slowSlider.minimumTrackTintColor = UIColor.hexColor(hexadecimal: PQBFConfig.shared.styleColor.rawValue)
+        slowSlider.tag = 10
+//        speechSlidView.addTarget(self, action: #selector(sliderTouchEnded(sender:)), for: .touchUpInside)
+        slowSlider.maximumValue = 4
+        slowSlider.minimumValue = 0.2
+        slowSlider.valueTextColor =  UIColor.hexColor(hexadecimal: PQBFConfig.shared.styleColor.rawValue)
+        slowSlider.value = 0.2
 
+        return slowSlider
+    }()
+    
+    
+    lazy var jumpSpeedSlider: BFUISlider = {
+        let jumpSpeedSlider = BFUISlider()
+        let thbImage =  UIImage.init().BF_Image(named:  "sliderTHBPin")
+        jumpSpeedSlider.setMinimumTrackImage(thbImage, for: .normal)
+        jumpSpeedSlider.setMaximumTrackImage(thbImage, for: .normal)
+        jumpSpeedSlider.setThumbImage(thbImage, for: .highlighted)
+        jumpSpeedSlider.setThumbImage(thbImage, for: .normal)
+        jumpSpeedSlider.maximumTrackTintColor = UIColor.hexColor(hexadecimal: "#E6E8E8")
+        jumpSpeedSlider.minimumTrackTintColor = UIColor.hexColor(hexadecimal: PQBFConfig.shared.styleColor.rawValue)
+        jumpSpeedSlider.tag = 10
+//        speechSlidView.addTarget(self, action: #selector(sliderTouchEnded(sender:)), for: .touchUpInside)
+        jumpSpeedSlider.maximumValue = 10
+        jumpSpeedSlider.minimumValue = 1
+        jumpSpeedSlider.valueTextColor =  UIColor.hexColor(hexadecimal: PQBFConfig.shared.styleColor.rawValue)
+        jumpSpeedSlider.value = 1
+
+        return jumpSpeedSlider
+    }()
+    
+    //跳跃卡点 和快慢速模式 UI 不一样
+    var isJumpSpeedModel:Bool = false{
+        didSet{
+            showHiddenView()
+            titleLab.text = isJumpSpeedModel ? "自定义跳跃快慢速" : "自定义快慢速"
+        }
+    }
+    
+    // 点击完成回调
+    public var selectSpeedCallBack: ((_ fastSpeed: Float, _ slowSpeed: Float,_ isJumpSpeedModel:Bool) -> Void)?
     
     override init(frame: CGRect) {
         super.init(frame: frame)
+        backgroundColor = .white
+        
+        layer.shadowColor = UIColor(red: 0, green: 0, blue: 0, alpha: 0.15).cgColor
+        layer.shadowOpacity = 1
+        layer.shadowOffset = CGSize(width: 0, height: -6)
+        layer.shadowRadius = 30
+        //切圆角
+        layer.cornerRadius = 15
         
         addSubview(backBtn)
+        addSubview(titleLab)
+        addSubview(confirmBtn)
+        addSubview(cancleBtn)
+        addSubview(customSpeedFastView)
+        addSubview(customSpeedSlowView)
+        addSubview(fastSlider)
+        addSubview(slowSlider)
+        addSubview(jumpSpeedSlider)
         
         autolayout()
+        showHiddenView()
   
     }
     required init?(coder _: NSCoder) {
         fatalError("init(coder:) has not been implemented")
     }
     
+    func showHiddenView(){
+        
+        customSpeedFastView.isHidden = isJumpSpeedModel
+        customSpeedSlowView.isHidden = isJumpSpeedModel
+        fastSlider.isHidden = isJumpSpeedModel
+        slowSlider.isHidden = isJumpSpeedModel
+        jumpSpeedSlider.isHidden = !isJumpSpeedModel
+    
+    }
+    
     func autolayout() {
         
         backBtn.snp.makeConstraints { make in
@@ -88,9 +182,23 @@ class PQCustomSpeedSettingView: UIView {
         titleLab.snp.makeConstraints { make in
             make.height.equalTo(20)
             make.width.equalTo(150)
-            make.left.equalToSuperview().offset(16)
+            make.centerX.equalToSuperview()
             make.top.equalToSuperview().offset(10)
         }
+        cancleBtn.snp.makeConstraints { make in
+            make.height.equalTo(50)
+            make.width.equalTo(61)
+            make.left.equalToSuperview().offset(19)
+            make.bottom.equalToSuperview().offset(-60)
+        }
+
+        confirmBtn.snp.makeConstraints { make in
+            make.height.equalTo(50)
+            make.width.equalTo(254)
+            make.right.equalToSuperview().offset(-30)
+            make.top.equalTo(cancleBtn.snp_top)
+        }
+       
         customSpeedFastView.snp.makeConstraints { make in
             make.height.width.equalTo(30)
             make.left.equalToSuperview().offset(18)
@@ -102,20 +210,24 @@ class PQCustomSpeedSettingView: UIView {
             make.left.equalTo(customSpeedFastView.snp_left)
             make.top.equalTo(customSpeedFastView.snp_bottom).offset(31)
         }
-        
-        customSpeedFastView.snp.makeConstraints { make in
-            make.height.equalTo(50)
-            make.width.equalTo(61)
-            make.left.equalToSuperview().offset(16)
-            make.bottom.equalToSuperview().offset(60)
+
+        fastSlider.snp.makeConstraints { make in
+            make.left.equalToSuperview().offset(65)
+            make.right.equalToSuperview().offset(-36)
+            make.centerY.equalTo(customSpeedFastView.snp_centerY)
         }
-        
-        customSpeedSlowView.snp.makeConstraints { make in
-            make.height.equalTo(50)
-            make.width.equalTo(254)
-            make.right.equalToSuperview().offset(-30)
-            make.top.equalTo(customSpeedFastView.snp_top)
+        slowSlider.snp.makeConstraints { make in
+            make.left.equalToSuperview().offset(65)
+            make.right.equalToSuperview().offset(-36)
+            make.centerY.equalTo(customSpeedSlowView.snp_centerY)
+        }
+
+        jumpSpeedSlider.snp.makeConstraints { make in
+            make.left.equalToSuperview().offset(30)
+            make.right.equalToSuperview().offset(-36)
+            make.top.equalTo(titleLab.snp_bottom).offset(104)
         }
+        
  
     }
     
@@ -126,6 +238,16 @@ class PQCustomSpeedSettingView: UIView {
     
     //确认
     @objc  func confirmClick(sender: UIButton) {
-    
+        isHidden = true
+        BFLog(message: "fastSlider: \(fastSlider.value) slowSlider: \(slowSlider.value) jumpSpeedSlider:\(jumpSpeedSlider.value)")
+        if(selectSpeedCallBack != nil){
+            if(!isJumpSpeedModel){
+                selectSpeedCallBack!(fastSlider.value,slowSlider.value,isJumpSpeedModel)
+                
+            }else{
+                selectSpeedCallBack!(jumpSpeedSlider.value,0,isJumpSpeedModel)
+            }
+            
+        }
     }
 }