| 
														
															@@ -17,8 +17,7 @@ class PQStuckPointCuttingView: UIView { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     private var stuckPointEndTime: CGFloat = 0 
														 | 
														
														 | 
														
															     private var stuckPointEndTime: CGFloat = 0 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     // 裁剪开始时间 默认 0 
														 | 
														
														 | 
														
															     // 裁剪开始时间 默认 0 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     private var cutStartTime: CGFloat = 0 
														 | 
														
														 | 
														
															     private var cutStartTime: CGFloat = 0 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-  
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-     
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 //    /// 裁剪结束最终的开始时间 
														 | 
														
														 | 
														
															 //    /// 裁剪结束最终的开始时间 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 //    private var cutFinishedStartTime: CGFloat { 
														 | 
														
														 | 
														
															 //    private var cutFinishedStartTime: CGFloat { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 //        (scrollView.contentOffset.x / perSecondWidth) + (((scrollView.frame.width - videoCropView.frame.width) / 2 + 15) / perSecondWidth) + cutStartTime 
														 | 
														
														 | 
														
															 //        (scrollView.contentOffset.x / perSecondWidth) + (((scrollView.frame.width - videoCropView.frame.width) / 2 + 15) / perSecondWidth) + cutStartTime 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -50,32 +49,32 @@ class PQStuckPointCuttingView: UIView { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     /// 频率间隔 
														 | 
														
														 | 
														
															     /// 频率间隔 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     private var frequencyMargin: CGFloat = 3 
														 | 
														
														 | 
														
															     private var frequencyMargin: CGFloat = 3 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     /// 竖线和contentview 父视图的左右间隔 
														 | 
														
														 | 
														
															     /// 竖线和contentview 父视图的左右间隔 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    private var margin: CGFloat =  (cScreenWidth -  adapterWidth(width: 250)) / 2 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-  
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    private var margin: CGFloat = (cScreenWidth - adapterWidth(width: 250)) / 2 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     /// 滑动区域大小 
														 | 
														
														 | 
														
															     /// 滑动区域大小 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     private var contentWidth: CGFloat = 0 
														 | 
														
														 | 
														
															     private var contentWidth: CGFloat = 0 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-     
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    //竖线一个间隔代表多少 S 是动态的 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    private var oneMarginTime:CGFloat = 0 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-     
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    private var isDrawLine:Bool = false 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-     
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    //保存已经绘制的竖线用于变色使用 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    var lineLayerArray:Array = Array<CAShapeLayer>.init() 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-     
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    //裁剪区的相素大小 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    var cropViewWidth: CGFloat =  adapterWidth(width: 250) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    // 竖线一个间隔代表多少 S 是动态的 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    private var oneMarginTime: CGFloat = 0 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    private var isDrawLine: Bool = false 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    // 保存已经绘制的竖线用于变色使用 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    var lineLayerArray: Array = Array<CAShapeLayer>.init() 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    // 裁剪区的相素大小 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    var cropViewWidth: CGFloat = adapterWidth(width: 250) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     /// 拖拽改变实时的回调 
														 | 
														
														 | 
														
															     /// 拖拽改变实时的回调 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     var videoRangeDidChanged: ((_ startTime: CGFloat, _ endTime: CGFloat) -> Void)? 
														 | 
														
														 | 
														
															     var videoRangeDidChanged: ((_ startTime: CGFloat, _ endTime: CGFloat) -> Void)? 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     /// 进度改变实时的回调 
														 | 
														
														 | 
														
															     /// 进度改变实时的回调 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     var videoProgressDidChanged: ((_ progress: CGFloat) -> Void)? 
														 | 
														
														 | 
														
															     var videoProgressDidChanged: ((_ progress: CGFloat) -> Void)? 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     /// 拖缀结束的回调 type - 1-拖动左边裁剪结束 2--拖动右边裁剪结束 3-进度条拖动结束 4-滑动结束 
														 | 
														
														 | 
														
															     /// 拖缀结束的回调 type - 1-拖动左边裁剪结束 2--拖动右边裁剪结束 3-进度条拖动结束 4-滑动结束 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     var videoDidEndDragging: ((_ type: Int, _ startTime: CGFloat, _ endTime: CGFloat, _ progress: CGFloat) -> Void)? 
														 | 
														
														 | 
														
															     var videoDidEndDragging: ((_ type: Int, _ startTime: CGFloat, _ endTime: CGFloat, _ progress: CGFloat) -> Void)? 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-     
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    //选择区内的线个数 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    var wavSelectCount:Int = 0 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    //整首歌的线的个数 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    var wavTotalCount:Int = 0 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    // 选择区内的线个数 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    var wavSelectCount: Int = 0 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    // 整首歌的线的个数 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    var wavTotalCount: Int = 0 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     /// 滚动视图 
														 | 
														
														 | 
														
															     /// 滚动视图 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     lazy var scrollView: UIScrollView = { 
														 | 
														
														 | 
														
															     lazy var scrollView: UIScrollView = { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         let scrollView = UIScrollView(frame: bounds) 
														 | 
														
														 | 
														
															         let scrollView = UIScrollView(frame: bounds) 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -92,37 +91,35 @@ class PQStuckPointCuttingView: UIView { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         return scrollView 
														 | 
														
														 | 
														
															         return scrollView 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     }() 
														 | 
														
														 | 
														
															     }() 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															-     
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     // 
														 | 
														
														 | 
														
															     // 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     lazy var rateView: UIView = { 
														 | 
														
														 | 
														
															     lazy var rateView: UIView = { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         let rateView = UIView(frame: CGRect(x: 0, y: 22, width: scrollView.contentSize.width, height: rateHeight)) 
														 | 
														
														 | 
														
															         let rateView = UIView(frame: CGRect(x: 0, y: 22, width: scrollView.contentSize.width, height: rateHeight)) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         rateView.backgroundColor = .clear 
														 | 
														
														 | 
														
															         rateView.backgroundColor = .clear 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         return rateView 
														 | 
														
														 | 
														
															         return rateView 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     }() 
														 | 
														
														 | 
														
															     }() 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-     
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    //总时长 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    lazy var tatalTimeLabel:UILabel = { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    // 总时长 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    lazy var tatalTimeLabel: UILabel = { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         let tatalTimeLabel = UILabel() 
														 | 
														
														 | 
														
															         let tatalTimeLabel = UILabel() 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         tatalTimeLabel.font = UIFont.systemFont(ofSize: 11) 
														 | 
														
														 | 
														
															         tatalTimeLabel.font = UIFont.systemFont(ofSize: 11) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         tatalTimeLabel.textAlignment = .right 
														 | 
														
														 | 
														
															         tatalTimeLabel.textAlignment = .right 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         tatalTimeLabel.textColor = UIColor.hexColor(hexadecimal: PQBFConfig.shared.styleColor.rawValue) 
														 | 
														
														 | 
														
															         tatalTimeLabel.textColor = UIColor.hexColor(hexadecimal: PQBFConfig.shared.styleColor.rawValue) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         tatalTimeLabel.text = "\(Float64(stuckPointEndTime - stuckPointStartTime).formatDurationToHMS())" 
														 | 
														
														 | 
														
															         tatalTimeLabel.text = "\(Float64(stuckPointEndTime - stuckPointStartTime).formatDurationToHMS())" 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-       return tatalTimeLabel 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        return tatalTimeLabel 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     }() 
														 | 
														
														 | 
														
															     }() 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    //显示选择框 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    // 显示选择框 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     lazy var videoCropView: UIView = { 
														 | 
														
														 | 
														
															     lazy var videoCropView: UIView = { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        let videoCropView:UIView = UIView.init(frame:  CGRect(x:     (cScreenWidth - cropViewWidth) / 2 , y: 0, width: cropViewWidth, height: 80)) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        let videoCropView: UIView = UIView(frame: CGRect(x: (cScreenWidth - cropViewWidth) / 2, y: 0, width: cropViewWidth, height: 80)) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         videoCropView.isUserInteractionEnabled = false 
														 | 
														
														 | 
														
															         videoCropView.isUserInteractionEnabled = false 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         videoCropView.layer.borderColor = UIColor.hexColor(hexadecimal: PQBFConfig.shared.styleColor.rawValue).cgColor 
														 | 
														
														 | 
														
															         videoCropView.layer.borderColor = UIColor.hexColor(hexadecimal: PQBFConfig.shared.styleColor.rawValue).cgColor 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         videoCropView.layer.borderWidth = 2 
														 | 
														
														 | 
														
															         videoCropView.layer.borderWidth = 2 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         videoCropView.layer.cornerRadius = 8 
														 | 
														
														 | 
														
															         videoCropView.layer.cornerRadius = 8 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-  
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         return videoCropView 
														 | 
														
														 | 
														
															         return videoCropView 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     }() 
														 | 
														
														 | 
														
															     }() 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    override private init(frame: CGRect) { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    private override init(frame: CGRect) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         super.init(frame: frame) 
														 | 
														
														 | 
														
															         super.init(frame: frame) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     } 
														 | 
														
														 | 
														
															     } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -136,7 +133,7 @@ class PQStuckPointCuttingView: UIView { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         if videoDuration < maxCutTime { 
														 | 
														
														 | 
														
															         if videoDuration < maxCutTime { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             maxCutTime = videoDuration 
														 | 
														
														 | 
														
															             maxCutTime = videoDuration 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         } 
														 | 
														
														 | 
														
															         } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-       
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         // 更新卡点值 
														 | 
														
														 | 
														
															         // 更新卡点值 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         updateEndTime(startTime: startTime, endTime: endTime) 
														 | 
														
														 | 
														
															         updateEndTime(startTime: startTime, endTime: endTime) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     } 
														 | 
														
														 | 
														
															     } 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -147,15 +144,15 @@ class PQStuckPointCuttingView: UIView { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     func updateEndTime(startTime: CGFloat, endTime: CGFloat) { 
														 | 
														
														 | 
														
															     func updateEndTime(startTime: CGFloat, endTime: CGFloat) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         stuckPointStartTime = startTime 
														 | 
														
														 | 
														
															         stuckPointStartTime = startTime 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         stuckPointEndTime = endTime 
														 | 
														
														 | 
														
															         stuckPointEndTime = endTime 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-  
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         backgroundColor = PQBFConfig.shared.styleBackGroundColor 
														 | 
														
														 | 
														
															         backgroundColor = PQBFConfig.shared.styleBackGroundColor 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         addSubview(scrollView) 
														 | 
														
														 | 
														
															         addSubview(scrollView) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-       
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         addSubview(videoCropView) 
														 | 
														
														 | 
														
															         addSubview(videoCropView) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         videoCropView.addSubview(tatalTimeLabel) 
														 | 
														
														 | 
														
															         videoCropView.addSubview(tatalTimeLabel) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         addData() 
														 | 
														
														 | 
														
															         addData() 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         tatalTimeLabel.snp.remakeConstraints { make in 
														 | 
														
														 | 
														
															         tatalTimeLabel.snp.remakeConstraints { make in 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             make.width.equalTo(40) 
														 | 
														
														 | 
														
															             make.width.equalTo(40) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             make.height.equalTo(15) 
														 | 
														
														 | 
														
															             make.height.equalTo(15) 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -163,21 +160,19 @@ class PQStuckPointCuttingView: UIView { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             make.right.equalTo(videoCropView.snp_right).offset(-6) 
														 | 
														
														 | 
														
															             make.right.equalTo(videoCropView.snp_right).offset(-6) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         } 
														 | 
														
														 | 
														
															         } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     } 
														 | 
														
														 | 
														
															     } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-     
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															     func addData() { 
														 | 
														
														 | 
														
															     func addData() { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-  
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        //1,选择区内的线个数 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        // 1,选择区内的线个数 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         wavSelectCount = Int(cropViewWidth / (frequencyWidth + frequencyMargin)) 
														 | 
														
														 | 
														
															         wavSelectCount = Int(cropViewWidth / (frequencyWidth + frequencyMargin)) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        //2,一共绘制的竖线个数 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        // 2,一共绘制的竖线个数 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         wavTotalCount = Int(videoDuration * CGFloat(wavSelectCount) / CGFloat(stuckPointEndTime - stuckPointStartTime)) 
														 | 
														
														 | 
														
															         wavTotalCount = Int(videoDuration * CGFloat(wavSelectCount) / CGFloat(stuckPointEndTime - stuckPointStartTime)) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-         
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        //竖线一个间隔代表多少 S 是动态的 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        // 竖线一个间隔代表多少 S 是动态的 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         oneMarginTime = (stuckPointEndTime - stuckPointStartTime) / CGFloat(wavSelectCount) 
														 | 
														
														 | 
														
															         oneMarginTime = (stuckPointEndTime - stuckPointStartTime) / CGFloat(wavSelectCount) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         timeRange = oneMarginTime * 10 
														 | 
														
														 | 
														
															         timeRange = oneMarginTime * 10 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        //显示时间 label 的个数 , -1 不够整倍数就不显示时间了 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        // 显示时间 label 的个数 , -1 不够整倍数就不显示时间了 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         let timeLabelCount = Int(videoDuration / timeRange) - 1 
														 | 
														
														 | 
														
															         let timeLabelCount = Int(videoDuration / timeRange) - 1 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-         
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         // 
														 | 
														
														 | 
														
															         // 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         contentWidth = CGFloat(wavTotalCount) * (frequencyWidth + frequencyMargin) + margin * 2 + timeLineWidth / 2 
														 | 
														
														 | 
														
															         contentWidth = CGFloat(wavTotalCount) * (frequencyWidth + frequencyMargin) + margin * 2 + timeLineWidth / 2 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         if contentWidth < scrollView.frame.width { 
														 | 
														
														 | 
														
															         if contentWidth < scrollView.frame.width { 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -193,15 +188,14 @@ class PQStuckPointCuttingView: UIView { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             titleLab.textColor = UIColor.hexColor(hexadecimal: "#999999") 
														 | 
														
														 | 
														
															             titleLab.textColor = UIColor.hexColor(hexadecimal: "#999999") 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             titleLab.text = "\((Float64(index) * Float64(timeRange)).formatDurationToHMS())" 
														 | 
														
														 | 
														
															             titleLab.text = "\((Float64(index) * Float64(timeRange)).formatDurationToHMS())" 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             scrollView.addSubview(titleLab) 
														 | 
														
														 | 
														
															             scrollView.addSubview(titleLab) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         } 
														 | 
														
														 | 
														
															         } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        if oneMarginTime > 0{ 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        if oneMarginTime > 0 { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             // 1,处理音频频率 
														 | 
														
														 | 
														
															             // 1,处理音频频率 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             configVoiceFrequency() 
														 | 
														
														 | 
														
															             configVoiceFrequency() 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             // 2,滚动到推荐位置 
														 | 
														
														 | 
														
															             // 2,滚动到推荐位置 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             if scrollView.frame.width < scrollView.contentSize.width { 
														 | 
														
														 | 
														
															             if scrollView.frame.width < scrollView.contentSize.width { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 var offsetX = (stuckPointStartTime / oneMarginTime) * (frequencyWidth + frequencyMargin) + timeLineWidth / 2 
														 | 
														
														 | 
														
															                 var offsetX = (stuckPointStartTime / oneMarginTime) * (frequencyWidth + frequencyMargin) + timeLineWidth / 2 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 if offsetX < 0 { 
														 | 
														
														 | 
														
															                 if offsetX < 0 { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                     offsetX = 0 
														 | 
														
														 | 
														
															                     offsetX = 0 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 } 
														 | 
														
														 | 
														
															                 } 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -211,48 +205,46 @@ class PQStuckPointCuttingView: UIView { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 scrollView.contentOffset = CGPoint(x: offsetX, y: 0) 
														 | 
														
														 | 
														
															                 scrollView.contentOffset = CGPoint(x: offsetX, y: 0) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             } 
														 | 
														
														 | 
														
															             } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             scrollView.addSubview(rateView) 
														 | 
														
														 | 
														
															             scrollView.addSubview(rateView) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-           
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         } 
														 | 
														
														 | 
														
															         } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     } 
														 | 
														
														 | 
														
															     } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															     /// 处理音频频率 
														 | 
														
														 | 
														
															     /// 处理音频频率 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     /// - Returns: <#description#> 
														 | 
														
														 | 
														
															     /// - Returns: <#description#> 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     func configVoiceFrequency() { 
														 | 
														
														 | 
														
															     func configVoiceFrequency() { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-     
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        //整倍数 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        // 整倍数 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         let waveTotalCount = Int(wavTotalCount) / cFrequency.count 
														 | 
														
														 | 
														
															         let waveTotalCount = Int(wavTotalCount) / cFrequency.count 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        //余多少个未画的 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        // 余多少个未画的 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         var remainder = Int(ceil(CGFloat(wavTotalCount) - CGFloat(waveTotalCount * cFrequency.count))) 
														 | 
														
														 | 
														
															         var remainder = Int(ceil(CGFloat(wavTotalCount) - CGFloat(waveTotalCount * cFrequency.count))) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         var totalWave: [CGFloat] = Array<CGFloat>.init() 
														 | 
														
														 | 
														
															         var totalWave: [CGFloat] = Array<CGFloat>.init() 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        //1,先画整倍数个竖线 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        // 1,先画整倍数个竖线 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         for _ in 0 ..< waveTotalCount { 
														 | 
														
														 | 
														
															         for _ in 0 ..< waveTotalCount { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             totalWave = totalWave + cFrequency 
														 | 
														
														 | 
														
															             totalWave = totalWave + cFrequency 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         } 
														 | 
														
														 | 
														
															         } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         if remainder > cFrequency.count - 1 { 
														 | 
														
														 | 
														
															         if remainder > cFrequency.count - 1 { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             remainder = cFrequency.count - 1 
														 | 
														
														 | 
														
															             remainder = cFrequency.count - 1 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         } 
														 | 
														
														 | 
														
															         } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        //1,再画余数个竖线 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        // 1,再画余数个竖线 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         if remainder > 0 { 
														 | 
														
														 | 
														
															         if remainder > 0 { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             totalWave = totalWave + cFrequency[0 ... remainder] 
														 | 
														
														 | 
														
															             totalWave = totalWave + cFrequency[0 ... remainder] 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         } 
														 | 
														
														 | 
														
															         } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-  
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         createWave(waveArr: totalWave) 
														 | 
														
														 | 
														
															         createWave(waveArr: totalWave) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     } 
														 | 
														
														 | 
														
															     } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-     
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     /// 更新进度绘制不同色值 
														 | 
														
														 | 
														
															     /// 更新进度绘制不同色值 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     /// progress <#progress description#> 
														 | 
														
														 | 
														
															     /// progress <#progress description#> 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     func updateProgress(progress: CGFloat) { 
														 | 
														
														 | 
														
															     func updateProgress(progress: CGFloat) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-         
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        for (i,layer) in lineLayerArray.enumerated() { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            if(CGFloat(i) * oneMarginTime <= stuckPointStartTime + progress *  CGFloat(stuckPointEndTime - stuckPointStartTime) && CGFloat(i) * oneMarginTime >= stuckPointStartTime){ 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        for (i, layer) in lineLayerArray.enumerated() { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            if CGFloat(i) * oneMarginTime <= stuckPointStartTime + progress * CGFloat(stuckPointEndTime - stuckPointStartTime) && CGFloat(i) * oneMarginTime >= stuckPointStartTime { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 BFLog(message: "progress is \(progress) 命中的位置:\(CGFloat(i) * oneMarginTime)") 
														 | 
														
														 | 
														
															                 BFLog(message: "progress is \(progress) 命中的位置:\(CGFloat(i) * oneMarginTime)") 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 layer.strokeColor = UIColor.hexColor(hexadecimal: PQBFConfig.shared.styleColor.rawValue).cgColor 
														 | 
														
														 | 
														
															                 layer.strokeColor = UIColor.hexColor(hexadecimal: PQBFConfig.shared.styleColor.rawValue).cgColor 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 layer.setNeedsDisplay() 
														 | 
														
														 | 
														
															                 layer.setNeedsDisplay() 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             } 
														 | 
														
														 | 
														
															             } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         } 
														 | 
														
														 | 
														
															         } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     } 
														 | 
														
														 | 
														
															     } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    //竖线恢复到原有色值 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    func resetDefaultsColor()  { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    // 竖线恢复到原有色值 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    func resetDefaultsColor() { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         for layer in lineLayerArray { 
														 | 
														
														 | 
														
															         for layer in lineLayerArray { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             layer.strokeColor = UIColor.hexColor(hexadecimal: "#999999").cgColor 
														 | 
														
														 | 
														
															             layer.strokeColor = UIColor.hexColor(hexadecimal: "#999999").cgColor 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             layer.setNeedsDisplay() 
														 | 
														
														 | 
														
															             layer.setNeedsDisplay() 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -276,20 +268,19 @@ class PQStuckPointCuttingView: UIView { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             let linePath = UIBezierPath() 
														 | 
														
														 | 
														
															             let linePath = UIBezierPath() 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             // 起点 timeLineWidth / 2 处理显示时间的 label中心为时间点 
														 | 
														
														 | 
														
															             // 起点 timeLineWidth / 2 处理显示时间的 label中心为时间点 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             let originX: CGFloat = CGFloat(Float(i) * Float(frequencyWidth + frequencyMargin)) + margin + timeLineWidth / 2 
														 | 
														
														 | 
														
															             let originX: CGFloat = CGFloat(Float(i) * Float(frequencyWidth + frequencyMargin)) + margin + timeLineWidth / 2 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-             
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             linePath.move(to: CGPoint(x: originX, y: startY)) 
														 | 
														
														 | 
														
															             linePath.move(to: CGPoint(x: originX, y: startY)) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             // 终点 
														 | 
														
														 | 
														
															             // 终点 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             linePath.addLine(to: CGPoint(x: originX, y: endY)) 
														 | 
														
														 | 
														
															             linePath.addLine(to: CGPoint(x: originX, y: endY)) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             let lineLayer = CAShapeLayer() 
														 | 
														
														 | 
														
															             let lineLayer = CAShapeLayer() 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-             
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             lineLayer.lineWidth = frequencyWidth 
														 | 
														
														 | 
														
															             lineLayer.lineWidth = frequencyWidth 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             lineLayer.strokeColor = UIColor.hexColor(hexadecimal: "#999999").cgColor 
														 | 
														
														 | 
														
															             lineLayer.strokeColor = UIColor.hexColor(hexadecimal: "#999999").cgColor 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             lineLayer.path = linePath.cgPath 
														 | 
														
														 | 
														
															             lineLayer.path = linePath.cgPath 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             lineLayer.fillColor = UIColor.black.cgColor 
														 | 
														
														 | 
														
															             lineLayer.fillColor = UIColor.black.cgColor 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-             
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            //推荐的开始起点是虚线 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            if(oneMarginTime * CGFloat(i) >= stuckPointStartTime && !isDrawLine){ 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            // 推荐的开始起点是虚线 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            if oneMarginTime * CGFloat(i) >= stuckPointStartTime && !isDrawLine { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 isDrawLine = true 
														 | 
														
														 | 
														
															                 isDrawLine = true 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 linePath.move(to: CGPoint(x: originX, y: -10)) 
														 | 
														
														 | 
														
															                 linePath.move(to: CGPoint(x: originX, y: -10)) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 // 终点 
														 | 
														
														 | 
														
															                 // 终点 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -297,10 +288,8 @@ class PQStuckPointCuttingView: UIView { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 lineLayer.path = linePath.cgPath 
														 | 
														
														 | 
														
															                 lineLayer.path = linePath.cgPath 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 lineLayer.lineDashPhase = 0 
														 | 
														
														 | 
														
															                 lineLayer.lineDashPhase = 0 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 lineLayer.lineDashPattern = [3, 3] 
														 | 
														
														 | 
														
															                 lineLayer.lineDashPattern = [3, 3] 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             } 
														 | 
														
														 | 
														
															             } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-             
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-             
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             lineLayerArray.append(lineLayer) 
														 | 
														
														 | 
														
															             lineLayerArray.append(lineLayer) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             rateView.layer.insertSublayer(lineLayer, at: 0) 
														 | 
														
														 | 
														
															             rateView.layer.insertSublayer(lineLayer, at: 0) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         } 
														 | 
														
														 | 
														
															         } 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -315,14 +304,13 @@ class PQStuckPointCuttingView: UIView { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 /// scrollView滑动代理 
														 | 
														
														 | 
														
															 /// scrollView滑动代理 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 extension PQStuckPointCuttingView: UIScrollViewDelegate { 
														 | 
														
														 | 
														
															 extension PQStuckPointCuttingView: UIScrollViewDelegate { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    func scrollViewDidScroll(_: UIScrollView) { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-  
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    } 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-  
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    func scrollViewDidScroll(_: UIScrollView) {} 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     func scrollViewDidEndDecelerating(_: UIScrollView) { 
														 | 
														
														 | 
														
															     func scrollViewDidEndDecelerating(_: UIScrollView) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         BFLog(message: "拖拽结束 - 回调") 
														 | 
														
														 | 
														
															         BFLog(message: "拖拽结束 - 回调") 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         resetDefaultsColor() 
														 | 
														
														 | 
														
															         resetDefaultsColor() 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     } 
														 | 
														
														 | 
														
															     } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     func scrollViewDidEndScrollingAnimation(_: UIScrollView) { 
														 | 
														
														 | 
														
															     func scrollViewDidEndScrollingAnimation(_: UIScrollView) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         BFLog(message: "scrollViewDidEndScrollingAnimation") 
														 | 
														
														 | 
														
															         BFLog(message: "scrollViewDidEndScrollingAnimation") 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         resetDefaultsColor() 
														 | 
														
														 | 
														
															         resetDefaultsColor() 
														 |