CommunityNavigationBarView.swift 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196
  1. //
  2. // CommunityNavigationBarView.swift
  3. // RainbowPlanet
  4. //
  5. // Created by 南鑫林 on 2019/6/12.
  6. // Copyright © 2019 RainbowPlanet. All rights reserved.
  7. //
  8. import UIKit
  9. import DPScrollNumberLabel
  10. import RxSwift
  11. import Lottie
  12. import SwiftyMediator
  13. class CommunityNavigationBarView: BaseView {
  14. deinit {
  15. if observe != nil {
  16. NotificationCenter.default.removeObserver(observe!)
  17. }
  18. }
  19. weak var observe : NSObjectProtocol?
  20. typealias SearchClosure = () -> Void
  21. var searchClosure:SearchClosure?
  22. var scrollNumberLabel : DPScrollNumberLabel?
  23. override func setupViews() {
  24. scrollNumberLabel = DPScrollNumberLabel.init(number: 0, fontSize: 16, textColor: kFFA42FColor, signSetting: SignSetting.unsigned)
  25. addSubview(leftButton)
  26. addSubview(rightButton)
  27. addSubview(scrollNumberLabel!)
  28. addSubview(searchBgView)
  29. searchBgView.addSubview(searchIconImageView)
  30. searchBgView.addSubview(searchTextField)
  31. observe = NotificationCenter.default.addObserver(forName: NSNotification.Name("userMemberGetTotalBean"), object: nil, queue: OperationQueue.main) {[weak self] (notification) in
  32. let totalBeanModel = notification.object as? TotalBeanModel
  33. // self?.rightButton.play()
  34. self?.scrollNumberLabel!.change(to: NSNumber(value: totalBeanModel?.todayBean ?? 0) , animated: true)
  35. if totalBeanModel?.todayBean == 0 {
  36. self?.scrollNumberLabel?.isHidden = true
  37. self?.rightButton.snp.makeConstraints { (make) in
  38. make.centerY.equalToSuperview()
  39. make.right.equalTo(-14)
  40. make.size.equalTo(25)
  41. }
  42. }else {
  43. self?.scrollNumberLabel!.snp_remakeConstraints { (make) in
  44. make.centerY.equalToSuperview()
  45. make.size.equalTo((self?.scrollNumberLabel!.frame.size)!)
  46. make.right.equalToSuperview().offset(-14)
  47. }
  48. self?.rightButton.snp.remakeConstraints { (make) in
  49. make.centerY.equalToSuperview()
  50. make.right.equalTo((self?.scrollNumberLabel!.snp_left)!).offset(-2)
  51. make.size.equalTo(25)
  52. }
  53. }
  54. }
  55. UserMemberTotalBeanViewModel.shared.userMemberGetTotalBeanApi()
  56. if UserModel.isTokenNil() {
  57. scrollNumberLabel?.isHidden = true
  58. }else {
  59. scrollNumberLabel?.isHidden = false
  60. }
  61. }
  62. override func setupLayouts() {
  63. leftButton.snp.makeConstraints { (make) in
  64. make.centerY.equalToSuperview()
  65. make.left.equalToSuperview().offset(16)
  66. make.size.equalTo(20)
  67. }
  68. rightButton.snp.makeConstraints { (make) in
  69. make.centerY.equalToSuperview()
  70. if UserModel.isTokenNil() {
  71. make.right.equalTo(-14)
  72. }else {
  73. make.right.equalTo(scrollNumberLabel!.snp_left).offset(-2)
  74. }
  75. make.size.equalTo(25)
  76. }
  77. scrollNumberLabel!.snp_makeConstraints { (make) in
  78. make.centerY.equalToSuperview()
  79. make.size.equalTo(scrollNumberLabel!.frame.size)
  80. make.right.equalToSuperview().offset(-14)
  81. }
  82. searchBgView.snp.makeConstraints { (make) in
  83. make.centerY.equalToSuperview()
  84. make.height.equalTo(30)
  85. make.right.equalTo(rightButton.snp.left).offset(-10)
  86. make.left.equalTo(leftButton.snp.right).offset(10)
  87. }
  88. searchIconImageView.snp.makeConstraints { (make) in
  89. make.centerY.equalToSuperview()
  90. make.left.equalToSuperview().offset(15)
  91. make.size.equalTo(17)
  92. }
  93. searchTextField.snp.makeConstraints { (make) in
  94. make.centerY.equalToSuperview()
  95. make.left.equalTo(searchIconImageView.snp.right).offset(6)
  96. make.height.equalTo(30)
  97. }
  98. }
  99. lazy var leftButton: UIButton = {
  100. let leftButton = UIButton(type: UIButton.ButtonType.custom)
  101. leftButton.setImage(kImage(name: "nav_btn_publish"), for: UIControl.State.normal)
  102. leftButton.rx.tap.subscribe(onNext: {
  103. [weak self] (data) in
  104. if UserModel.isTokenNil() {
  105. kAppDelegate.setLogin()
  106. }else {
  107. let pickVc = PublishViewController()
  108. let nav = BaseNavigationViewController.init(rootViewController: pickVc)
  109. BaseTabbarViewController.shared.esTabBarController.present(nav, animated: true, completion: nil)
  110. }
  111. }).disposed(by: disposeBag)
  112. return leftButton
  113. }()
  114. lazy var rightButton: UIButton = {
  115. let rightButton = UIButton()
  116. rightButton.setImage(kImage(name: "ico_bean_org"), for: UIControl.State.normal)
  117. rightButton.addTapGesture(1, target: self, action: #selector(skittles))
  118. return rightButton
  119. }()
  120. // lazy var rightButton: AnimationView = {
  121. // let rightButton = AnimationView()
  122. // let animation = Animation.named("Skittles")
  123. // rightButton.animation = animation
  124. // rightButton.contentMode = .scaleAspectFit
  125. // rightButton.loopMode = .playOnce
  126. // rightButton.addTapGesture(1, target: self, action: #selector(skittles))
  127. // return rightButton
  128. // }()
  129. typealias RightButtonClosure = () -> Void
  130. var rightButtonClosure : RightButtonClosure?
  131. @objc func skittles() {
  132. // rightButton.play()
  133. if let rightButtonClosure = rightButtonClosure {
  134. rightButtonClosure()
  135. }
  136. }
  137. private lazy var searchBgView: UIView = {
  138. let searchBgView = UIView()
  139. searchBgView.backgroundColor = kf7f8faColor
  140. searchBgView.cornerRadius = 15
  141. searchBgView.masksToBounds = true
  142. searchBgView.addTapGesture(1, target: self, action: #selector(searchClick))
  143. return searchBgView
  144. }()
  145. private lazy var searchIconImageView: UIImageView = {
  146. let searchIconImageView = UIImageView()
  147. searchIconImageView.image = kImage(name: "navbar_search")
  148. return searchIconImageView
  149. }()
  150. private lazy var searchTextField: UITextField = {
  151. let searchTextField = UITextField()
  152. searchTextField.placeholder = "大家都在搜"
  153. searchTextField.tintColor = kFFA42FColor
  154. searchTextField.textColor = k333333Color
  155. searchTextField.returnKeyType = .done
  156. searchTextField.font = kScaleRegularFont14
  157. searchTextField.borderStyle = .none
  158. searchTextField.isEnabled = false
  159. return searchTextField
  160. }()
  161. /// 搜索点击
  162. @objc func searchClick() {
  163. if let searchClosure = searchClosure {
  164. searchClosure()
  165. }
  166. }
  167. }