// // IHGuestInfoView.swift // Inhealth // // Created by weclouds on 2020/2/7. // Copyright © 2020 weclouds. All rights reserved. // import UIKit let kNotifactionIHGuestInfoUploadImageFinished = "kNotifactionIHGuestInfoUploadImageFinished" let kIHwGuestInfoNotificationGetDeviceImage = "kIHGuestInfoNotificationGetDeviceImage" protocol IHGuestInfoViewDelegate : NSObjectProtocol{ func selectedHotel(hotelId:String) func goToselectedRoomNumber(_ hotelId:String?) //注册信息确认 func guestInfoConfirm(_ name:String,age:String) func goToPickerAvatar() } class IHGuestInfoView: UIView { var hotellist:[DropDownData]?{ didSet{ let hotel = self.hotellist?.first if let hotel = hotel { hotelLabel.text = hotel.name hotelId = hotel.id } } } var roomNumber :String?{ didSet{ if self.roomNumber == nil { self.roomNumberLabel.textColor = UIColor(hexString: "#C6CDD5") self.roomNumberLabel.text = "年级-班级号" }else{ self.roomNumberLabel.textColor = UIColor(hexString: "#333333") self.roomNumberLabel.text = self.roomNumber } } } var hotelId :String?{ didSet{ } } weak var delegate:IHGuestInfoViewDelegate? @IBOutlet weak var roomNumberLabel: UILabel! @IBOutlet weak var ageSilder: UIView! @IBOutlet weak var hotelLabel: UILabel! @IBOutlet weak var ageLabel: UILabel! @IBOutlet weak var nameTf: UITextField! @IBOutlet weak var avtarIcon :UIImageView! @IBOutlet weak var uploadImage :UIImageView! var imagePath :String? override func awakeFromNib() { super.awakeFromNib() NotificationCenter.default.addObserver(self, selector: #selector(notifyDeviceIcon(_:)), name: NSNotification.Name(kIHwGuestInfoNotificationGetDeviceImage), object: nil) NotificationCenter.default.addObserver(self, selector: #selector(notifyImagePath), name: NSNotification.Name(kNotifactionIHGuestInfoUploadImageFinished), object: nil) createUI() } //通知改变头像 @objc func notifyDeviceIcon(_ notif:Notification) { let image = notif.object as! UIImage self.avtarIcon.image = image } //通知改变imagePath @objc func notifyImagePath(_ notif:Notification) { let path = notif.object as! String //isPickImageFinished = true self.imagePath = path } deinit { NotificationCenter.default.removeObserver(self) } override func layoutSubviews() { super.layoutSubviews() //xib的frame需要在layoutsubViews中设置 不然有问题 frame = CGRect(x: 0, y: 0, width: KSCREENWIDTH, height: 812) } override func touchesBegan(_ touches: Set, with event: UIEvent?) { self.endEditing(true) } //确定按钮 事件 @IBAction func confirmAction(_ sender: Any) { log.debug("确定") if nameTf.text == "" { g_showHUD("请输入您的名称") return } AppShare.register_age = ageLabel.text! AppShare.register_name = nameTf.text! if let delegate = self.delegate { delegate.guestInfoConfirm(nameTf.text!, age: ageLabel.text!) } } //选择楼房 @IBAction func selectedHotel(_ sender: Any) { self.roomNumberLabel.textColor = UIColor(hexString: "#C6CDD5") roomNumberLabel.text = "年级-班级号" var titleArr = [String]() if let hotelList = self.hotellist { for hotel in hotelList { titleArr.append(hotel.name!) } } let pick = THScrollChooseView(question: titleArr, withDefaultDesc: titleArr.first) pick?.confirmBlock = {(selectedIndex) in log.debug(" title = \(titleArr[selectedIndex])") self.hotelLabel.text = titleArr[selectedIndex] if let hotelList = self.hotellist { //for hotel in hotelList { let hotel = hotelList[selectedIndex] log.debug("选择的hotelid - \(hotel.id!)") self.hotelId = hotel.id! if let delegate = self.delegate { delegate.selectedHotel(hotelId: hotel.id!) } // } } } pick?.show() } } extension IHGuestInfoView{ func createUI() { let slider = CLSliderView(frame: CGRect.init(x: 0, y: 0, width: KSCREENWIDTH - 50 , height: ageSilder.frame.height)) slider.thumbImage = UIImage(named: "ageSlider") ageSilder.addSubview(slider) slider.valueChange = {(value) in // print("value = \(value)") let age = 100 * value self.ageLabel.text = String(format: "%.0f", age) } roomNumberLabel.isUserInteractionEnabled = true let tap = UITapGestureRecognizer(target: self, action: #selector(selectedRoomNumber)) roomNumberLabel.addGestureRecognizer(tap) avtarIcon.isUserInteractionEnabled = true uploadImage.isUserInteractionEnabled = true let tap1 = UITapGestureRecognizer(target:self,action:#selector(pickerImage)) let tap2 = UITapGestureRecognizer(target:self,action:#selector(pickerImage)) avtarIcon.addGestureRecognizer(tap1) uploadImage.addGestureRecognizer(tap2) } @objc func pickerImage() { if let delegate = delegate { delegate.goToPickerAvatar() } } @objc func selectedRoomNumber() { log.debug("选择房间号") if let delegate = delegate { delegate.goToselectedRoomNumber(self.hotelId) } } } extension IHGuestInfoView: WXHCodeViewDelegate{ func codeView(_ codeView: WXHCodeView!, fullText: String!) { codeView.resignFirstResponder() log.debug("输入完成,当前输入为 : \(fullText)") } }