PublishRecommendMusicController.swift 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195
  1. //
  2. // PublishRecommendMusicController.swift
  3. // RainbowPlanet
  4. //
  5. // Created by Christopher on 2019/7/16.
  6. // Copyright © 2019 RainbowPlanet. All rights reserved.
  7. // 推荐音乐
  8. import UIKit
  9. import IQKeyboardManagerSwift
  10. import SwiftyMediator
  11. class PublishRecommendMusicController: BaseViewController {
  12. override func didReceiveMemoryWarning() {
  13. super.didReceiveMemoryWarning()
  14. }
  15. override func viewDidLoad() {
  16. super.viewDidLoad()
  17. setupViews()
  18. setupLayouts()
  19. setupData()
  20. }
  21. override func setupViews() {
  22. statusBarStyle = .lightContent
  23. navigationBar.barBackgroundColor = UIColor.black
  24. navigationBar.title = "推荐音乐"
  25. navigationBar.titleLabelColor = kffffffColor
  26. navigationBar.wr_setLeftButton(image: kImage(name: "navbar_back_white")!)
  27. self.view.backgroundColor = UIColor.black
  28. navigationBar.wr_setRightButton(title: "提交", titleColor: kffffffColor)
  29. navigationBar.rightButton.titleLabel!.font = kRegularFont14
  30. navigationBar.onClickRightButton = {
  31. [weak self] in
  32. let name = self?.nameTextView.text
  33. let url = self?.linkTextView.text
  34. if name == nil || name == "" {
  35. SwiftProgressHUD.shared().showText("请填写歌曲名称")
  36. return
  37. }
  38. self?.communityUploadMusicApi(name!, url ?? "")
  39. }
  40. view.addSubview(cardBackView)
  41. cardBackView.addSubview(sepLineView)
  42. cardBackView.addSubview(nameTextView)
  43. cardBackView.addSubview(linkTextView)
  44. view.addSubview(recommendLabel)
  45. view.addSubview(recommendButton)
  46. }
  47. override func setupLayouts() {
  48. cardBackView.snp.makeConstraints { (make) in
  49. make.top.equalTo(kSafeStatusBarHeight + 44 + 20)
  50. make.left.equalTo(14)
  51. make.right.equalTo(-14)
  52. make.height.equalTo(160)
  53. }
  54. sepLineView.snp.makeConstraints { (make) in
  55. make.top.equalTo(80)
  56. make.left.equalTo(15)
  57. make.right.equalTo(-15)
  58. make.height.equalTo(0.5)
  59. }
  60. nameTextView.snp.makeConstraints { (make) in
  61. make.top.equalTo(20)
  62. make.left.equalTo(15)
  63. make.right.equalTo(-15)
  64. make.height.equalTo(40)
  65. }
  66. linkTextView.snp.makeConstraints { (make) in
  67. make.bottom.equalTo(-20)
  68. make.left.equalTo(15)
  69. make.right.equalTo(-15)
  70. make.height.equalTo(40)
  71. }
  72. recommendLabel.snp.makeConstraints { (make) in
  73. make.centerX.equalTo(kScreenWidth*0.5-25)
  74. make.bottom.equalTo(-(kSafeTabBarHeight+15))
  75. make.height.equalTo(20)
  76. }
  77. recommendButton.snp.makeConstraints { (make) in
  78. make.left.equalTo(recommendLabel.snp_right).offset(2)
  79. make.height.equalTo(30)
  80. make.centerY.equalTo(recommendLabel.snp_centerY)
  81. make.width.equalTo(75)
  82. }
  83. }
  84. override func setupData() {
  85. }
  86. lazy var cardBackView: UIView = {
  87. let cardBackView = UIView()
  88. cardBackView.backgroundColor = kffffffColor
  89. cardBackView.cornerRadius = 8
  90. cardBackView.masksToBounds = true
  91. return cardBackView
  92. }()
  93. lazy var sepLineView: UIView = {
  94. let sepLineView = UIView()
  95. sepLineView.backgroundColor = k999999Color
  96. return sepLineView
  97. }()
  98. private lazy var nameTextView: IQTextView = {
  99. let nameTextView = IQTextView()
  100. nameTextView.backgroundColor = kffffffColor
  101. nameTextView.textColor = UIColor.black
  102. nameTextView.font = kRegularFont16
  103. nameTextView.placeholder = "输入歌曲名称"
  104. nameTextView.placeholderTextColor = k999999Color
  105. nameTextView.delegate = self
  106. return nameTextView
  107. }()
  108. private lazy var linkTextView: IQTextView = {
  109. let linkTextView = IQTextView()
  110. linkTextView.backgroundColor = kffffffColor
  111. linkTextView.textColor = UIColor.black
  112. linkTextView.font = kRegularFont16
  113. linkTextView.placeholder = "输入歌曲链接(选填)"
  114. linkTextView.placeholderTextColor = k999999Color
  115. linkTextView.delegate = self
  116. return linkTextView
  117. }()
  118. lazy var recommendLabel: UILabel = {
  119. let recommendLabel = UILabel()
  120. recommendLabel.text = "点击提交代表您同意"
  121. recommendLabel.textColor = k999999Color
  122. recommendLabel.font = kRegularFont12
  123. return recommendLabel
  124. }()
  125. lazy var recommendButton: UIButton = {
  126. let recommendButton = UIButton(type: UIButton.ButtonType.custom)
  127. recommendButton.setTitle("内容授权协议", for: UIControl.State.normal)
  128. recommendButton.setTitleColor(kffffffColor, for: UIControl.State.normal)
  129. recommendButton.titleLabel?.font = kMediumFont12
  130. recommendButton.rx.tap.subscribe(onNext: {
  131. [weak self] (data) in
  132. Mediator.push(H5RouterModuleType.pushContentId7)
  133. }).disposed(by: disposeBag)
  134. return recommendButton
  135. }()
  136. }
  137. // MARK: -
  138. extension PublishRecommendMusicController: UITextViewDelegate {
  139. func textViewDidChange(_ textView: UITextView) {
  140. if textView == nameTextView {
  141. var fullStr = textView.text ?? ""
  142. if textView.text?.count ?? 0 > 180 {
  143. fullStr = String(fullStr.prefix(150)) as String
  144. textView.text = fullStr
  145. }
  146. } else if textView == linkTextView {
  147. var fullStr = textView.text ?? ""
  148. if textView.text?.count ?? 0 > 180 {
  149. fullStr = String(fullStr.prefix(150)) as String
  150. textView.text = fullStr
  151. }
  152. }
  153. }
  154. }
  155. extension PublishRecommendMusicController {
  156. /// 用户上传音乐
  157. func communityUploadMusicApi(_ name: String, _ url: String) {
  158. let userName = UserModel.shared().getModel()?.username ?? ""
  159. let uid = UserModel.shared().getModel()?.uid ?? 0
  160. SwiftMoyaNetWorkServiceCommunity.shared().communityUploadMusicApi(name: name.trimmingCharacters(in: .whitespaces), username: userName, url: url, uid: uid) {[weak self] (data) -> (Void) in
  161. // 上传成功,返回
  162. SwiftProgressHUD.shared().showText("提交成功")
  163. self?.navigationController?.popViewController(animated: true)
  164. }
  165. }
  166. }