// // IHRoomLightBarChartCell.swift // Inhealth // // Created by weclouds on 2019/12/16. // Copyright © 2019 weclouds. All rights reserved. // import UIKit protocol IHRoomLightBarChartCellDelegate : NSObjectProtocol{ func switchDataType(_ index: Int) func controlSwitch(_ status : String) } class IHRoomLightBarChartCell: UITableViewCell { weak var delegate : IHRoomLightBarChartCellDelegate? @IBOutlet weak var alarmBox: UIView! @IBOutlet weak var switchBtn: UIButton! var lightData : LightInfodata?{ didSet{ if let lightData = self.lightData { devNameLabel.text = lightData.name devIdLabel.text = "Lights · " + lightData.deviceId! alarmInfoLabel.text = lightData.alarmInfo if let status = lightData.status { if status == "1"{ self.switchBtn.isSelected = true self.switchBtn.setBackgroundImage(UIImage(named: "onSwitch_gray"), for: .selected) }else if status == "0"{ self.switchBtn.setBackgroundImage(UIImage(named: "offSwitch"), for: .normal) self.switchBtn.isSelected = false } } if lightData.alarmStatus == "0" { self.alarmBox.isHidden = true }else{ self.alarmBox.isHidden = false } } } } var reportData: ReportData?{ didSet{ if let reportData = self.reportData { barChartView.reportData = reportData } } } @IBOutlet weak var exchangeSwitch: UIView! @IBOutlet weak var devNameLabel: UILabel! @IBOutlet weak var devIdLabel: UILabel! @IBOutlet weak var alarmInfoLabel: UILabel! @IBOutlet weak var devImageV: UIImageView! @IBOutlet weak var barView: UIView! lazy var barChartView: IHBarChartView = { let barChartView = IHBarChartView() barChartView.delegate = self return barChartView }() override func awakeFromNib() { super.awakeFromNib() // Initialization code barView.addSubview(barChartView) switchBtn.addTarget(self, action: #selector(switchAction(sender:)), for: .touchUpInside) } override func setSelected(_ selected: Bool, animated: Bool) { super.setSelected(selected, animated: animated) } override func layoutSubviews() { super.layoutSubviews() barChartView.snp.makeConstraints { (make) in make.top.left.right.bottom.equalToSuperview() } } @objc func switchAction(sender:UIButton){ sender.isSelected = !sender.isSelected let status = sender.isSelected == true ? "1" : "0" NotificationCenter.default.post(name: NSNotification.Name(kNotificationIHRoomLightColorCellChangeSwitchStatus), object: status) if let delegate = self.delegate { delegate.controlSwitch(status) } } } extension IHRoomLightBarChartCell: IHBarChartViewDelegate{ func exchangeBarChartDataType(_ index: Int) { if let delegate = self.delegate { delegate.switchDataType(index) } } }