|
@@ -0,0 +1,239 @@
|
|
|
+//
|
|
|
+// PublishMusicVolumnView.swift
|
|
|
+// RainbowPlanet
|
|
|
+//
|
|
|
+// Created by Christopher on 2019/7/16.
|
|
|
+// Copyright © 2019 RainbowPlanet. All rights reserved.
|
|
|
+//
|
|
|
+
|
|
|
+import UIKit
|
|
|
+import FWPopupView
|
|
|
+import RxSwift
|
|
|
+
|
|
|
+class PublishMusicVolumnView: FWPopupView {
|
|
|
+
|
|
|
+ let disposeBag = DisposeBag()
|
|
|
+
|
|
|
+ var originVolumn: Float = 50
|
|
|
+ var backVolumn: Float = 100
|
|
|
+
|
|
|
+ override init(frame: CGRect) {
|
|
|
+ super.init(frame: frame)
|
|
|
+ setupViews()
|
|
|
+ setupLayouts()
|
|
|
+ }
|
|
|
+
|
|
|
+ required init?(coder aDecoder: NSCoder) {
|
|
|
+ fatalError("init(coder:) has not been implemented")
|
|
|
+ }
|
|
|
+
|
|
|
+ func setupViews() {
|
|
|
+ frame = CGRect(x: 0, y: 0, width: kScreenWidth, height: kScreenHeight)
|
|
|
+ backgroundColor = UIColor(hexString: "FFFFFF", alpha: 0.2)
|
|
|
+
|
|
|
+ addSubview(controlBackView)
|
|
|
+ controlBackView.addSubview(cancelButton)
|
|
|
+ controlBackView.addSubview(applyButton)
|
|
|
+
|
|
|
+ controlBackView.addSubview(originLabel)
|
|
|
+ controlBackView.addSubview(originSlider)
|
|
|
+ controlBackView.addSubview(backLabel)
|
|
|
+ controlBackView.addSubview(backSlider)
|
|
|
+
|
|
|
+ controlBackView.addSubview(musicButton)
|
|
|
+ controlBackView.addSubview(volumnButton)
|
|
|
+ controlBackView.addSubview(v_lineLabel)
|
|
|
+ }
|
|
|
+
|
|
|
+ func setupLayouts() {
|
|
|
+
|
|
|
+ controlBackView.snp.makeConstraints { (make) in
|
|
|
+ make.left.right.equalToSuperview()
|
|
|
+ make.bottom.equalTo(-kSafeStatusBarHeight)
|
|
|
+ make.height.equalTo(177)
|
|
|
+ }
|
|
|
+
|
|
|
+ cancelButton.snp.makeConstraints { (make) in
|
|
|
+ make.top.equalTo(2)
|
|
|
+ make.left.equalTo(3)
|
|
|
+ make.size.equalTo(44)
|
|
|
+ }
|
|
|
+ applyButton.snp.makeConstraints { (make) in
|
|
|
+ make.top.equalTo(2)
|
|
|
+ make.right.equalTo(-3)
|
|
|
+ make.size.equalTo(44)
|
|
|
+ }
|
|
|
+
|
|
|
+ originLabel.snp.makeConstraints { (make) in
|
|
|
+ make.top.equalTo(78)
|
|
|
+ make.left.equalTo(19)
|
|
|
+ make.width.equalTo(30)
|
|
|
+ make.height.equalTo(21)
|
|
|
+ }
|
|
|
+
|
|
|
+ backLabel.snp.makeConstraints { (make) in
|
|
|
+ make.top.equalTo(78)
|
|
|
+ make.left.equalTo(kScreenWidth/2 + 13)
|
|
|
+ make.width.equalTo(30)
|
|
|
+ make.height.equalTo(21)
|
|
|
+ }
|
|
|
+
|
|
|
+ musicButton.snp.makeConstraints { (make) in
|
|
|
+ make.centerX.equalTo(controlBackView.snp_right).multipliedBy(0.25)
|
|
|
+ make.bottom.equalTo(-17)
|
|
|
+ make.width.equalTo(40)
|
|
|
+ make.height.equalTo(21)
|
|
|
+ }
|
|
|
+ volumnButton.snp.makeConstraints { (make) in
|
|
|
+ make.centerX.equalTo(controlBackView.snp_right).multipliedBy(0.75)
|
|
|
+ make.bottom.equalTo(-17)
|
|
|
+ make.width.equalTo(40)
|
|
|
+ make.height.equalTo(21)
|
|
|
+ }
|
|
|
+ v_lineLabel.snp.makeConstraints { (make) in
|
|
|
+ make.centerX.equalTo(volumnButton.snp_centerX)
|
|
|
+ make.width.equalTo(20)
|
|
|
+ make.height.equalTo(3)
|
|
|
+ make.bottom.equalTo(-11)
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ lazy var controlBackView: UIView = {
|
|
|
+ let controlBackView = UIView()
|
|
|
+ controlBackView.backgroundColor = UIColor(hexString: "000000", alpha: 0.5)
|
|
|
+ controlBackView.configRectCorner(corner: [.topLeft,.topRight], radii: CGSize(width: 8, height: 8))
|
|
|
+ return controlBackView
|
|
|
+ }()
|
|
|
+
|
|
|
+ lazy var cancelButton: UIButton = {
|
|
|
+ let cancelButton = UIButton(type: UIButton.ButtonType.custom)
|
|
|
+ cancelButton.setImage(kImage(name: "video_btn_close_white"), for: .normal)
|
|
|
+ return cancelButton
|
|
|
+ }()
|
|
|
+
|
|
|
+ lazy var originLabel: UILabel = {
|
|
|
+ let originLabel = UILabel()
|
|
|
+ originLabel.text = "原声"
|
|
|
+ originLabel.textColor = kffffffColor
|
|
|
+ originLabel.font = kRegularFont15
|
|
|
+ return originLabel
|
|
|
+ }()
|
|
|
+
|
|
|
+ lazy var originSlider: CustomSlider = {
|
|
|
+ let originSlider = CustomSlider()
|
|
|
+ originSlider.value = originVolumn
|
|
|
+ originSlider.thumbTintColor = kffffffColor
|
|
|
+ // 区域颜色
|
|
|
+ originSlider.minimumTrackTintColor = kffffffColor
|
|
|
+ originSlider.maximumTrackTintColor = UIColor(hexString: "000000", alpha: 0.3)
|
|
|
+ //
|
|
|
+ originSlider.setThumbImage(kImage(name: "music_btn_dot"), for: .normal)
|
|
|
+ originSlider.setThumbImage(kImage(name: "music_btn_dot"), for: .highlighted)
|
|
|
+ originSlider.addTarget(self, action: #selector(originValueChanged), for: .valueChanged)
|
|
|
+ return originSlider
|
|
|
+ }()
|
|
|
+
|
|
|
+ lazy var backSlider: CustomSlider = {
|
|
|
+ let backSlider = CustomSlider()
|
|
|
+ backSlider.value = backVolumn
|
|
|
+ backSlider.thumbTintColor = kffffffColor
|
|
|
+ // 区域颜色
|
|
|
+ backSlider.minimumTrackTintColor = kffffffColor
|
|
|
+ backSlider.maximumTrackTintColor = UIColor(hexString: "000000", alpha: 0.3)
|
|
|
+ //
|
|
|
+ backSlider.setThumbImage(kImage(name: "music_btn_dot"), for: .normal)
|
|
|
+ backSlider.setThumbImage(kImage(name: "music_btn_dot"), for: .highlighted)
|
|
|
+ backSlider.addTarget(self, action: #selector(backValueChanged), for: .valueChanged)
|
|
|
+ return backSlider
|
|
|
+ }()
|
|
|
+
|
|
|
+ lazy var backLabel: UILabel = {
|
|
|
+ let backLabel = UILabel()
|
|
|
+ backLabel.text = "配乐"
|
|
|
+ backLabel.textColor = kffffffColor
|
|
|
+ backLabel.font = kRegularFont15
|
|
|
+ return backLabel
|
|
|
+ }()
|
|
|
+
|
|
|
+ lazy var applyButton: UIButton = {
|
|
|
+ let applyButton = UIButton(type: UIButton.ButtonType.custom)
|
|
|
+ applyButton.setImage(kImage(name: "nav_finish_white"), for: .normal)
|
|
|
+ return applyButton
|
|
|
+ }()
|
|
|
+
|
|
|
+ lazy var musicButton: UIButton = {
|
|
|
+ let musicButton = UIButton(type: UIButton.ButtonType.custom)
|
|
|
+ musicButton.setTitle("配乐", for: UIControl.State.normal)
|
|
|
+ musicButton.setTitleColor(k999999Color, for: UIControl.State.normal)
|
|
|
+ musicButton.titleLabel?.font = kRegularFont16
|
|
|
+ return musicButton
|
|
|
+ }()
|
|
|
+
|
|
|
+ lazy var volumnButton: UIButton = {
|
|
|
+ let volumnButton = UIButton(type: UIButton.ButtonType.custom)
|
|
|
+ volumnButton.setTitle("音量", for: UIControl.State.normal)
|
|
|
+ volumnButton.setTitleColor(kffffffColor, for: UIControl.State.normal)
|
|
|
+ volumnButton.titleLabel?.font = kMediumFont17
|
|
|
+ return volumnButton
|
|
|
+ }()
|
|
|
+
|
|
|
+ lazy var v_lineLabel: UILabel = {
|
|
|
+ let v_lineLabel = UILabel()
|
|
|
+ v_lineLabel.backgroundColor = kffffffColor
|
|
|
+ v_lineLabel.cornerRadius = 1
|
|
|
+ return v_lineLabel
|
|
|
+ }()
|
|
|
+
|
|
|
+ @objc func originValueChanged(_ sender: Any?) {
|
|
|
+ let slider = sender as? UISlider
|
|
|
+
|
|
|
+ let sliderRate = CGFloat((slider?.value ?? 0.0) / (slider?.maximumValue ?? 0.0))
|
|
|
+ print("\n-------- originSliderRate = \(sliderRate)")
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ @objc func backValueChanged(_ sender: Any?) {
|
|
|
+ let slider = sender as? UISlider
|
|
|
+
|
|
|
+ let sliderRate = CGFloat((slider?.value ?? 0.0) / (slider?.maximumValue ?? 0.0))
|
|
|
+
|
|
|
+ print("\n-------- backSliderRate = \(sliderRate)")
|
|
|
+ }
|
|
|
+
|
|
|
+ /// 初始化View
|
|
|
+ @objc class func publishMusicVolumnView() -> PublishMusicVolumnView {
|
|
|
+ let view = PublishMusicVolumnView()
|
|
|
+ let vProperty = FWPopupViewProperty()
|
|
|
+ vProperty.popupCustomAlignment = .bottomCenter
|
|
|
+ vProperty.popupViewEdgeInsets = UIEdgeInsets(top: 0, left: 0, bottom: 0, right: 0)
|
|
|
+ vProperty.popupAnimationType = .scale
|
|
|
+ vProperty.maskViewColor = UIColor(white: 0, alpha: 0.2)
|
|
|
+ vProperty.touchWildToHide = "1"
|
|
|
+ view.vProperty = vProperty
|
|
|
+ view.show()
|
|
|
+
|
|
|
+ view.cancelButton.rx.tap.subscribe(onNext: { (data) in
|
|
|
+ print("----点击了-取消")
|
|
|
+ view.hide()
|
|
|
+
|
|
|
+ }).disposed(by: view.disposeBag)
|
|
|
+
|
|
|
+ view.applyButton.rx.tap.subscribe(onNext: {(data) in
|
|
|
+ print("----点击了-应用")
|
|
|
+ view.hide()
|
|
|
+ }).disposed(by: view.disposeBag)
|
|
|
+
|
|
|
+ view.musicButton.rx.tap.subscribe(onNext: { (data) in
|
|
|
+ print("----点击了-配乐")
|
|
|
+
|
|
|
+ }).disposed(by: view.disposeBag)
|
|
|
+
|
|
|
+ view.volumnButton.rx.tap.subscribe(onNext: { (data) in
|
|
|
+ print("----点击了-音量")
|
|
|
+
|
|
|
+ }).disposed(by: view.disposeBag)
|
|
|
+
|
|
|
+ return view
|
|
|
+ }
|
|
|
+
|
|
|
+}
|