// // IHCentralizedView.swift // Inhealth // // Created by weclouds on 2019/12/14. // Copyright © 2019 weclouds. All rights reserved. // import UIKit //import TKSwitcherCollection extension UILabel{ func isEmpty(_ placehodler :String?) { self.textColor = UIColor(hexString: "#C6CDD5") self.text = placehodler } //重新设置 func reset() { self.textColor = UIColor(hexString: "#333333") } } protocol IHCentralizedViewDelegate : NSObjectProtocol { func centralizeSetting(roomId:String,light:String,color:String,colorR:String,colorG:String,colorB:String,status:String,level:String) } class IHCentralizedView: UIView { weak var delegate : IHCentralizedViewDelegate? private var roomId:String? private var light:String? = "25" private var color:String? = "5" private var colorR:String? = "0" private var colorG:String? = "0" private var colorB:String? = "0" var floorList:[RoomListData]?{ didSet{ floorNames = IHCentrlizedService.share.getFloorNameList(from: self.floorList) floorNameLabel.text = floorNames?.first if floorNames != nil || floorNames!.count > 0 { floorNameLabel.reset() //获取第一层楼的房间列表 roomNames = IHCentrlizedService.share.getFirstRooms(self.floorList) roomNumberLabel.text = roomNames?.first //第一个房间id self.roomId = IHCentrlizedService.share.getFirstRoomID(self.floorList) }else{ floorNameLabel.isEmpty("Please chose Floor") } selectedFloor = self.floorList?.first // 默认选择第一个 } } var selectedFloor: RoomListData? var floorNames :[String]? var roomNames :[String]? var purifierStatus: String? = "0" var purifierLevel:String? = "1" @IBOutlet weak var brightnessLabel: UILabel! @IBOutlet weak var brightnessSlider: IHSlider! @IBOutlet weak var colorTemperatureSlider: IHSlider! @IBOutlet weak var colorTemperatureSliderLabel: UILabel! @IBOutlet weak var ColorBoxView: UIView! @IBOutlet weak var exchangeSwitch: UIButton! @IBOutlet weak var floorBox: UIView! @IBOutlet weak var floorNameLabel: UILabel! @IBOutlet weak var scenceBox: UIView! @IBOutlet weak var scenceModeLabel: UILabel! @IBOutlet weak var roomBox: UIView! @IBOutlet weak var roomNumberLabel: UITextField! @IBOutlet weak var purifierBox: UIView! @IBOutlet weak var purifierLevelLabel: UILabel! lazy var colorAdjustmentView: IHColorAdjustmentView = { let view = Bundle.main.loadNibNamed("IHColorAdjustmentView", owner: nil, options: nil)?.first as! IHColorAdjustmentView view.delegate = self return view }() override func awakeFromNib() { super.awakeFromNib() setupView() addGesture() } override func layoutSubviews() { super.layoutSubviews() colorAdjustmentView.frame = ColorBoxView.bounds } ///设置子视图 func setupView() { ColorBoxView.addSubview(colorAdjustmentView) brightnessSlider.minimumValue = 0 brightnessSlider.maximumValue = 100 colorTemperatureSlider.minimumValue = 0 colorTemperatureSlider.maximumValue = 10 brightnessSlider.value = 25 colorTemperatureSlider.value = 5 brightnessLabel.text = "50%" colorTemperatureSliderLabel.text = "4500k" let image1 = originImage(UIImage(named: "greenThumb")!, scaleToSize: CGSize(width: 20, height: 20)) colorTemperatureSlider.setThumbImage(image1, for: .normal) colorTemperatureSlider.setThumbImage(image1, for: .highlighted) let image2 = originImage(UIImage(named: "紫色进度条按钮")!, scaleToSize: CGSize(width: 20, height: 20)) brightnessSlider.setThumbImage(image2, for: .normal) brightnessSlider.setThumbImage(image2, for: .highlighted) } ///添加点击手势 func addGesture() { let floorTap = UITapGestureRecognizer(target: self, action: #selector(tapFloorBoxAction)) floorBox.addGestureRecognizer(floorTap) let roomTap = UITapGestureRecognizer(target: self, action: #selector(tapRoomBoxAction)) roomBox.addGestureRecognizer(roomTap) let scenceTap = UITapGestureRecognizer(target: self, action: #selector(tapScenceBoxAction)) scenceBox.addGestureRecognizer(scenceTap) let purifierTap = UITapGestureRecognizer(target: self, action: #selector(tapPurifierBoxAction)) purifierBox.addGestureRecognizer(purifierTap) } @IBAction func brightnessEndChange(_ sender: UISlider) { self.light = "\(Int(sender.value))" log.debug(Int(sender.value)) let bright = (sender.value) self.brightnessLabel.text = "\(Int(bright))%" } @IBAction func colorTempEndChange(_ sender: UISlider) { log.debug(Int(sender.value)) let index = Int(sender.value + 0.5) colorTemperatureSlider.setValue(Float(index), animated: false) self.colorTemperatureSliderLabel.text = "\(index * 300 + 3000)k" self.color = "\(index * 300 + 3000)" } func originImage(_ image:UIImage, scaleToSize size:CGSize) -> UIImage { UIGraphicsBeginImageContext(size) image.draw(in: CGRect(x: 0, y: 0, width: size.width, height: size.height)) let scaleImage = UIGraphicsGetImageFromCurrentImageContext() UIGraphicsEndImageContext() return scaleImage! } @IBAction func preserveAction(_ sender: Any) { if let delegate = self.delegate{ delegate.centralizeSetting(roomId: self.roomId!, light: self.light!, color: self.color!, colorR: self.colorR!, colorG: self.colorG!, colorB: self.colorB!, status: self.purifierStatus!, level: self.purifierLevel!) } } @objc func tapFloorBoxAction() { let titleArr = self.floorNames let pick = THScrollChooseView(question: titleArr, withDefaultDesc: titleArr?.first) pick?.confirmBlock = {(selectedIndex) in log.debug(" title = \(titleArr?[selectedIndex] ?? "")") let floor = self.floorList?[selectedIndex] self.floorNameLabel.text = floor?.name self.selectedFloor = floor //获取房间 self.roomNames = IHCentrlizedService.share.getRoomNameList(from: floor?.roomList) self.roomNumberLabel.text = self.roomNames?.first if self.floorNames != nil || self.floorNames!.count > 0 { self.floorNameLabel.reset() }else{ self.floorNameLabel.isEmpty("Please chose Floor") } //获取第一层楼的房间列表 } pick?.show() } @objc func tapRoomBoxAction() { log.debug(" tapRoomBoxAction") let titleArr = self.roomNames let pick = THScrollChooseView(question: titleArr, withDefaultDesc: titleArr?.first) if titleArr?.count == 0 { g_showHUD("在此层还没有添加房间!") return } pick?.confirmBlock = {(selectedIndex) in // log.debug(" title = \(titleArr?[selectedIndex] ?? " ")") self.roomId = IHCentrlizedService.share.getRoomId(from: self.selectedFloor, roomIndex: selectedIndex) self.roomNumberLabel.text = titleArr?[selectedIndex] } pick?.show() } @objc func tapScenceBoxAction() { log.debug(" tapScenceBoxAction") let titleArr = ["自定义模式","阅读模式","全面模式","休息模式","放松模式","工作模式"] let pick = THScrollChooseView(question: titleArr, withDefaultDesc: titleArr.first) pick?.confirmBlock = {(selectedIndex) in self.scenceModeLabel.text = titleArr[selectedIndex] log.debug(" title = \(titleArr[selectedIndex])") } pick?.show() } @objc func tapPurifierBoxAction() { log.debug(" tapPurifierBoxAction") let titleArr = ["低档","中档","高档"] let pick = THScrollChooseView(question: titleArr, withDefaultDesc: titleArr.first) pick?.confirmBlock = {(selectedIndex) in log.debug(" title = \(titleArr[selectedIndex])") self.purifierLevelLabel.text = titleArr[selectedIndex] self.purifierLevel = "\(selectedIndex + 1)" } pick?.show() } @IBAction func switchAction(_ sender: UIButton) { sender.isSelected = !sender.isSelected self.purifierStatus = sender.isSelected == true ? "1" : "0" } } extension IHCentralizedView :IHColorAdjustmentViewDelegate{ func colorAdjustmentViewChangedColor(red: Int, green: Int, blue: Int) { self.colorR = "\(red)" self.colorG = "\(green)" self.colorB = "\(blue)" } }