SearchResultNavigationbarView.swift 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155
  1. //
  2. // SearchResultNavigationbarView.swift
  3. // RainbowPlanet
  4. //
  5. // Created by 南鑫林 on 2019/4/23.
  6. // Copyright © 2019 南鑫林. All rights reserved.
  7. //
  8. import UIKit
  9. import PPBadgeViewSwift
  10. class SearchResultNavigationbarView: BaseView {
  11. /// 返回
  12. typealias BackBlock = () -> Void
  13. var backBlock : BackBlock?
  14. /// 购物车
  15. typealias ShoppingCarBlock = () -> Void
  16. var shoppingCarBlock : ShoppingCarBlock?
  17. /// 搜索
  18. typealias SearchResultBlock = (_ keyWord:String) -> Void
  19. var searchResultBlock : SearchResultBlock?
  20. override func setupViews() {
  21. addSubview(backButton)
  22. addSubview(shoppingCarButton)
  23. addSubview(searchbgView)
  24. searchbgView.addSubview(searchIconImageView)
  25. searchbgView.addSubview(searchTextField)
  26. }
  27. override func setupLayouts() {
  28. backButton.snp.makeConstraints { (make) in
  29. make.centerY.equalToSuperview()
  30. make.left.equalTo(14)
  31. make.size.equalTo(22)
  32. }
  33. shoppingCarButton.snp.makeConstraints { (make) in
  34. make.centerY.equalToSuperview()
  35. make.right.equalToSuperview().offset(-14)
  36. make.width.equalTo(24)
  37. make.height.equalTo(21)
  38. }
  39. searchbgView.snp.makeConstraints { (make) in
  40. make.centerY.equalToSuperview()
  41. make.left.equalTo(backButton.snp.right).offset(4)
  42. make.right.equalTo(shoppingCarButton.snp.left).offset(-10)
  43. make.height.equalTo(30)
  44. }
  45. searchIconImageView.snp.makeConstraints { (make) in
  46. make.centerY.equalToSuperview()
  47. make.left.equalTo(12)
  48. make.size.equalTo(18)
  49. }
  50. searchTextField.snp.makeConstraints { (make) in
  51. make.centerY.equalToSuperview()
  52. make.left.equalTo(searchIconImageView.snp.right).offset(8)
  53. make.right.equalToSuperview().offset(8)
  54. make.height.equalTo(30)
  55. }
  56. }
  57. private lazy var backButton: UIButton = {
  58. let backButton = UIButton(type: UIButton.ButtonType.custom)
  59. backButton.setImage(kImage(name: "navbar_back_black"), for: UIControl.State.normal)
  60. backButton.rx.tap.subscribe(onNext: { [weak self] (data) in
  61. if let backBlock = self?.backBlock {
  62. backBlock()
  63. }
  64. }).disposed(by: disposeBag)
  65. return backButton
  66. }()
  67. private lazy var searchbgView: UIView = {
  68. let searchbgView = UIView()
  69. searchbgView.backgroundColor = kf7f8faColor
  70. searchbgView.cornerRadius = 15
  71. searchbgView.masksToBounds = true
  72. return searchbgView
  73. }()
  74. private lazy var searchIconImageView: UIImageView = {
  75. let searchIconImageView = UIImageView()
  76. searchIconImageView.image = kImage(name: "navbar_search")
  77. return searchIconImageView
  78. }()
  79. lazy var searchTextField: UITextField = {
  80. let searchTextField = UITextField()
  81. searchTextField.placeholder = "请输入商品名称"
  82. searchTextField.tintColor = kFFA42FColor
  83. searchTextField.textColor = k333333Color
  84. searchTextField.returnKeyType = .search
  85. searchTextField.font = kScaleRegularFont14
  86. searchTextField.borderStyle = .none
  87. searchTextField.rx.controlEvent([.editingDidEndOnExit]).asObservable().subscribe(onNext: { [weak self] (text) in
  88. if searchTextField.text?.count ?? 0 > 0 {
  89. self?.endEditing(true)
  90. var searchHistoryArray = Array<String>()
  91. if UserDefaults.standard.array(forKey: "SearchHistoryArray")?.isEmpty ?? true {
  92. searchHistoryArray.append(searchTextField.text ?? "")
  93. } else {
  94. searchHistoryArray = UserDefaults.standard.array(forKey: "SearchHistoryArray") as! [String]
  95. searchHistoryArray.append(searchTextField.text ?? "")
  96. }
  97. UserDefaults.standard.set(searchHistoryArray, forKey: "SearchHistoryArray")
  98. if let searchResultBlock = self?.searchResultBlock {
  99. searchResultBlock(searchTextField.text ?? "")
  100. }
  101. }else {
  102. SwiftProgressHUD.shared().showText("搜索商品不能为空")
  103. }
  104. }).disposed(by: disposeBag)
  105. return searchTextField
  106. }()
  107. private lazy var shoppingCarButton: UIButton = {
  108. let shoppingCarButton = UIButton(type: UIButton.ButtonType.custom)
  109. shoppingCarButton.setImage(kImage(name: "navbar_shopping"), for: UIControl.State.normal)
  110. shoppingCarButton.rx.tap.subscribe(onNext: { [weak self] (data) in
  111. if let shoppingCarBlock = self?.shoppingCarBlock {
  112. shoppingCarBlock()
  113. }
  114. }).disposed(by: disposeBag)
  115. // shoppingCarButton.pp.setBadge(height: 14)
  116. // shoppingCarButton.pp.badgeView.font = kRegularFont10
  117. shoppingCarButton.pp.badgeView.backgroundColor = kfe352bColor
  118. shoppingCarButton.pp.moveBadge(x: -2, y: 2)
  119. return shoppingCarButton
  120. }()
  121. var productCartCountModel : ProductCartCountModel? {
  122. didSet {
  123. if productCartCountModel?.count == 0 {
  124. shoppingCarButton.pp.hiddenBadge()
  125. }else {
  126. shoppingCarButton.pp.addBadge(number: productCartCountModel?.count ?? 0)
  127. }
  128. }
  129. }
  130. }