Browse Source

视频View

Chris 5 years ago
parent
commit
aa936150a2

+ 66 - 5
RainbowPlanet/RainbowPlanet/Modules/PublishModule/PublishTakeVideo/PublishVideoView.swift

@@ -9,6 +9,7 @@
 import UIKit
 import RxSwift
 import RxCocoa
+import JXSegmentedView
 
 enum BtnActionType {
     case back       // 返回
@@ -32,6 +33,7 @@ class PublishVideoView: BaseView {
         
         addSubview(backButton)
         addSubview(recordButton)
+        addSubview(segmentedView)
         
         addSubview(controlBackView)
         controlBackView.addSubview(reverseButton)
@@ -62,6 +64,13 @@ class PublishVideoView: BaseView {
             make.height.equalTo(100)
         }
         
+        segmentedView.snp.makeConstraints { (make) in
+            make.height.equalTo(40)
+            make.left.equalTo(14)
+            make.right.equalTo(-14)
+            make.bottom.equalTo(recordButton.snp_top).offset(-21)
+        }
+        
         /***** 翻转、音乐、滤镜 *****/
         controlBackView.snp.makeConstraints { (make) in
             make.top.equalTo(64)
@@ -115,9 +124,47 @@ class PublishVideoView: BaseView {
         previewView.snp.makeConstraints { (make) in
             make.edges.equalToSuperview()
         }
-        
     }
     
+    // MARK: - 创建视图控件
+    //1.初始化JXSegmentedViewx
+    lazy var segmentedView: JXSegmentedView = {
+        let segmentedView = JXSegmentedView()
+        segmentedView.delegate = self
+        segmentedView.dataSource = segmentedDataSource
+        segmentedView.selectItemAt(index: 2)
+        segmentedView.defaultSelectedIndex = 2
+        segmentedView.backgroundColor = kRGBAColor(r: 0, g: 0, b: 0, a: 0.2)
+        segmentedView.cornerRadius = 20
+        segmentedView.masksToBounds = true
+        return segmentedView
+    }()
+    
+    //2.初始化dataSource
+    private lazy var segmentedDataSource: JXSegmentedTitleDataSource = {
+        let segmentedDataSource = JXSegmentedTitleDataSource()
+        segmentedDataSource.isTitleColorGradientEnabled = true
+        segmentedDataSource.isItemSpacingAverageEnabled = true
+        segmentedDataSource.isTitleZoomEnabled = true
+        segmentedDataSource.titleNormalColor = kffffffColor
+        segmentedDataSource.titleSelectedColor = k333333Color
+        segmentedDataSource.titleNormalFont = kRegularFont14!
+        segmentedDataSource.titleSelectedFont = kBoldFont22
+        segmentedDataSource.titles = ["极慢","慢","标准","快","极快"]
+        //reloadData(selectedIndex:)方法一定要调用,方法内部会刷新数据源数组
+        segmentedDataSource.reloadData(selectedIndex: 2)
+        
+        return segmentedDataSource
+    }()
+    
+    //3.初始化指示器indicator
+    private lazy var indicator: JXSegmentedIndicatorBackgroundView = {
+        let indicator = JXSegmentedIndicatorBackgroundView()
+//        indicator.indicatorColors = [k62CC74Color,.white,.white]
+        indicator.indicatorHeight = 40
+        return indicator
+    }()
+    
     lazy var backButton: UIButton = {
         let backButton = UIButton(type: UIButton.ButtonType.custom)
         backButton.setImage(kImage(name: "video_btn_close_white"), for: UIControl.State.normal)
@@ -129,7 +176,7 @@ class PublishVideoView: BaseView {
         return backButton
     }()
     
-    // 放置"翻转、音乐、滤镜"のView
+    // MARK:放置"翻转、音乐、滤镜"のView
     lazy var controlBackView: UIView = {
         let controlBackView = UIView()
         return controlBackView
@@ -177,7 +224,7 @@ class PublishVideoView: BaseView {
         return filterButton
     }()
     
-    // 放置"回删、确定"のView
+    // MARK:放置"回删、确定"のView
     lazy var selBackView: UIView = {
         let selBackView = UIView()
         return selBackView
@@ -211,7 +258,7 @@ class PublishVideoView: BaseView {
         return confirmButton
     }()
     
-    // 录制のButton
+    // MARK:录制のButton
     private lazy var recordButton: UIButton = {
         let recordButton = UIButton(type: UIButton.ButtonType.custom)
         recordButton.setImage(kImage(name: "video_btn_shoot"), for: UIControl.State.normal)
@@ -228,10 +275,24 @@ class PublishVideoView: BaseView {
     }()
     
     
-    // 预览View
+    // MARK:预览View
     lazy var previewView: UIView = {
         let previewView = UIView()
         return previewView
     }()
     
 }
+
+extension PublishVideoView : JXSegmentedViewDelegate {
+    
+    // 点击选中的情况才会调用该方法
+    func segmentedView(_ segmentedView: JXSegmentedView, didClickSelectedItemAt index: Int) {        
+        print("----选中\(index)")
+    }
+    
+    /// 是否允许点击选中目标index的item
+    func segmentedView(_ segmentedView: JXSegmentedView, canClickItemAt index: Int) -> Bool {
+        return true
+    }
+}
+