IHGuestInfoView.swift 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190
  1. //
  2. // IHGuestInfoView.swift
  3. // Inhealth
  4. //
  5. // Created by weclouds on 2020/2/7.
  6. // Copyright © 2020 weclouds. All rights reserved.
  7. //
  8. import UIKit
  9. let kNotifactionIHGuestInfoUploadImageFinished = "kNotifactionIHGuestInfoUploadImageFinished"
  10. let kIHwGuestInfoNotificationGetDeviceImage = "kIHGuestInfoNotificationGetDeviceImage"
  11. protocol IHGuestInfoViewDelegate : NSObjectProtocol{
  12. func selectedHotel(hotelId:String)
  13. func goToselectedRoomNumber(_ hotelId:String?)
  14. //注册信息确认
  15. func guestInfoConfirm(_ name:String,age:String)
  16. func goToPickerAvatar()
  17. }
  18. class IHGuestInfoView: UIView {
  19. var hotellist:[DropDownData]?{
  20. didSet{
  21. let hotel = self.hotellist?.first
  22. if let hotel = hotel {
  23. hotelLabel.text = hotel.name
  24. hotelId = hotel.id
  25. }
  26. }
  27. }
  28. var roomNumber :String?{
  29. didSet{
  30. if self.roomNumber == nil {
  31. self.roomNumberLabel.textColor = UIColor(hexString: "#C6CDD5")
  32. self.roomNumberLabel.text = "年级-班级号"
  33. }else{
  34. self.roomNumberLabel.textColor = UIColor(hexString: "#333333")
  35. self.roomNumberLabel.text = self.roomNumber
  36. }
  37. }
  38. }
  39. var hotelId :String?{
  40. didSet{
  41. }
  42. }
  43. weak var delegate:IHGuestInfoViewDelegate?
  44. @IBOutlet weak var roomNumberLabel: UILabel!
  45. @IBOutlet weak var ageSilder: UIView!
  46. @IBOutlet weak var hotelLabel: UILabel!
  47. @IBOutlet weak var ageLabel: UILabel!
  48. @IBOutlet weak var nameTf: UITextField!
  49. @IBOutlet weak var avtarIcon :UIImageView!
  50. @IBOutlet weak var uploadImage :UIImageView!
  51. var imagePath :String?
  52. override func awakeFromNib() {
  53. super.awakeFromNib()
  54. NotificationCenter.default.addObserver(self, selector: #selector(notifyDeviceIcon(_:)), name: NSNotification.Name(kIHwGuestInfoNotificationGetDeviceImage), object: nil)
  55. NotificationCenter.default.addObserver(self, selector: #selector(notifyImagePath), name: NSNotification.Name(kNotifactionIHGuestInfoUploadImageFinished), object: nil)
  56. createUI()
  57. }
  58. //通知改变头像
  59. @objc func notifyDeviceIcon(_ notif:Notification) {
  60. let image = notif.object as! UIImage
  61. self.avtarIcon.image = image
  62. }
  63. //通知改变imagePath
  64. @objc func notifyImagePath(_ notif:Notification) {
  65. let path = notif.object as! String
  66. //isPickImageFinished = true
  67. self.imagePath = path
  68. }
  69. deinit {
  70. NotificationCenter.default.removeObserver(self)
  71. }
  72. override func layoutSubviews() {
  73. super.layoutSubviews()
  74. //xib的frame需要在layoutsubViews中设置 不然有问题
  75. frame = CGRect(x: 0, y: 0, width: KSCREENWIDTH, height: 812)
  76. }
  77. override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
  78. self.endEditing(true)
  79. }
  80. //确定按钮 事件
  81. @IBAction func confirmAction(_ sender: Any) {
  82. log.debug("确定")
  83. if nameTf.text == "" {
  84. g_showHUD("请输入您的名称")
  85. return
  86. }
  87. AppShare.register_age = ageLabel.text!
  88. AppShare.register_name = nameTf.text!
  89. if let delegate = self.delegate {
  90. delegate.guestInfoConfirm(nameTf.text!, age: ageLabel.text!)
  91. }
  92. }
  93. //选择楼房
  94. @IBAction func selectedHotel(_ sender: Any) {
  95. self.roomNumberLabel.textColor = UIColor(hexString: "#C6CDD5")
  96. roomNumberLabel.text = "年级-班级号"
  97. var titleArr = [String]()
  98. if let hotelList = self.hotellist {
  99. for hotel in hotelList {
  100. titleArr.append(hotel.name!)
  101. }
  102. }
  103. let pick = THScrollChooseView(question: titleArr, withDefaultDesc: titleArr.first)
  104. pick?.confirmBlock = {(selectedIndex) in
  105. log.debug(" title = \(titleArr[selectedIndex])")
  106. self.hotelLabel.text = titleArr[selectedIndex]
  107. if let hotelList = self.hotellist {
  108. //for hotel in hotelList {
  109. let hotel = hotelList[selectedIndex]
  110. log.debug("选择的hotelid - \(hotel.id!)")
  111. self.hotelId = hotel.id!
  112. if let delegate = self.delegate {
  113. delegate.selectedHotel(hotelId: hotel.id!)
  114. }
  115. // }
  116. }
  117. }
  118. pick?.show()
  119. }
  120. }
  121. extension IHGuestInfoView{
  122. func createUI() {
  123. let slider = CLSliderView(frame: CGRect.init(x: 0, y: 0, width: KSCREENWIDTH - 50 , height: ageSilder.frame.height))
  124. slider.thumbImage = UIImage(named: "ageSlider")
  125. ageSilder.addSubview(slider)
  126. slider.valueChange = {(value) in
  127. // print("value = \(value)")
  128. let age = 100 * value
  129. self.ageLabel.text = String(format: "%.0f", age)
  130. }
  131. roomNumberLabel.isUserInteractionEnabled = true
  132. let tap = UITapGestureRecognizer(target: self, action: #selector(selectedRoomNumber))
  133. roomNumberLabel.addGestureRecognizer(tap)
  134. avtarIcon.isUserInteractionEnabled = true
  135. uploadImage.isUserInteractionEnabled = true
  136. let tap1 = UITapGestureRecognizer(target:self,action:#selector(pickerImage))
  137. let tap2 = UITapGestureRecognizer(target:self,action:#selector(pickerImage))
  138. avtarIcon.addGestureRecognizer(tap1)
  139. uploadImage.addGestureRecognizer(tap2)
  140. }
  141. @objc func pickerImage() {
  142. if let delegate = delegate {
  143. delegate.goToPickerAvatar()
  144. }
  145. }
  146. @objc func selectedRoomNumber() {
  147. log.debug("选择房间号")
  148. if let delegate = delegate {
  149. delegate.goToselectedRoomNumber(self.hotelId)
  150. }
  151. }
  152. }
  153. extension IHGuestInfoView: WXHCodeViewDelegate{
  154. func codeView(_ codeView: WXHCodeView!, fullText: String!) {
  155. codeView.resignFirstResponder()
  156. log.debug("输入完成,当前输入为 : \(fullText)")
  157. }
  158. }