123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223 |
- //
- // IHRoomLightColorCell.swift
- // Inhealth
- //
- // Created by weclouds on 2019/12/16.
- // Copyright © 2019 weclouds. All rights reserved.
- //
- import UIKit
- let kNotificationIHRoomLightColorCellChangeSwitchStatus = "kNotificationIHRoomLightColorCellChangeSwitchStatus"
- protocol IHRoomLightColorCellDelegate : NSObjectProtocol{
- //调节亮度值
- func adjustBrightness(_ light :Int)
- //调节色温
- func adjustColorTemperature(_ color:Int)
- //调节颜色
- func adjustColor(_ red:Int,green:Int,blue:Int)
- }
- class IHRoomLightColorCell: UITableViewCell {
-
- var switchStatus :String? = "1"
- weak var delegate: IHRoomLightColorCellDelegate?
- var lightId :String?
- var brightness :Int?{
- didSet{
- if let brightness = self.brightness {
- // 0 ~ 50
- // 3/ 50 * 100
- let value : Float = Float(brightness)
- self.brightLabel.text = "\(Int(value))%"
- brightSlider.value = Float(brightness)
- }
- }
- }
-
-
- var color :Int?{
- didSet{
- if let color = self.color {
- self.colorTempLabel.text = "\(color)k"
- colorTempSlider.value = Float((color - 3000) / 300 )
- }
- }
- }
-
- var colorStruct :ColorStruct?{
- didSet{
-
- colorAdjustmentView.colorStruct = self.colorStruct
- }
- }
-
- var model :String?{
- didSet{
-
- if let model = self.model {
-
- if model == "0" {
- self.wecl10Box.isHidden = false
- self.tempColorBox.isHidden = true
- self.colorBox.isHidden = true
- self.wecl20Box.isHidden = true
- }else if model == "1"{
- self.tempColorBox.isHidden = false
- self.wecl20Box.isHidden = false
- self.wecl10Box.isHidden = true
- self.colorBox.isHidden = true
- }else{
- self.tempColorBox.isHidden = false
- self.colorBox.isHidden = false
- self.wecl10Box.isHidden = true
- self.wecl20Box.isHidden = true
- }
- }
- }
- }
-
- var colorR :Int?
-
- //色温
- @IBOutlet weak var tempColorBox: UIView!
- //we_cl10
- @IBOutlet weak var wecl10Box: UIView!
- //we_cl20
- @IBOutlet weak var wecl20Box: UIView!
-
- @IBOutlet weak var colorBox: UIView!
-
- @IBOutlet weak var brightLabel: UILabel!
-
-
- @IBOutlet weak var colorTempLabel: UILabel!
-
- @IBOutlet weak var brightSlider: IHSlider!
-
- @IBOutlet weak var colorTempSlider: IHSlider!
- 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()
- // Initialization code
- NotificationCenter.default.addObserver(self, selector: #selector(switchStatusNotify), name: NSNotification.Name(kNotificationIHRoomLightColorCellChangeSwitchStatus), object: nil)
- createUI()
-
- }
- deinit {
- NotificationCenter.default.removeObserver(self)
- }
- override func layoutSubviews() {
- super.layoutSubviews()
- colorAdjustmentView.frame = colorBox.bounds
- }
- @objc func switchStatusNotify(_ notify:Notification) {
- let status = notify.object as! String
- self.switchStatus = status
- }
- func createUI() {
- colorBox.addSubview(colorAdjustmentView)
- brightSlider.isContinuous = true //设置了连续变化
- colorTempSlider.isContinuous = true
- brightSlider.minimumValue = 0
- brightSlider.maximumValue = 100
- colorTempSlider.minimumValue = 0
- colorTempSlider.maximumValue = 10
-
- let image1 = originImage(UIImage(named: "yellowThumb")!, scaleToSize: CGSize(width: 20, height: 20))
- colorTempSlider.setThumbImage(image1, for: .normal)
- colorTempSlider.setThumbImage(image1, for: .highlighted)
- let image2 = originImage(UIImage(named: "greenThumb")!, scaleToSize: CGSize(width: 20, height: 20))
- brightSlider.setThumbImage(image2, for: .normal)
- brightSlider.setThumbImage(image2, for: .highlighted)
- }
- override func setSelected(_ selected: Bool, animated: Bool) {
- super.setSelected(selected, animated: animated)
- // Configure the view for the selected state
- }
-
-
- @IBAction func brightAction(_ sender: UISlider) {
- if self.switchStatus == "0" {
- g_showHUD("此灯已关")
- //self.brightSlider.value = 0
- return
- }
- let bright = (sender.value )
- let brightness = Int(bright )
- let value = Int(sender.value)
- log.debug("value - \(value) --- brightness - \(brightness)")
- if let delegate = self.delegate {
- delegate.adjustBrightness(value)
- }
- }
-
-
-
- @IBAction func colorTempratureAction(_ sender: UISlider) {
- if self.switchStatus == "0" {
- g_showHUD("此灯已关")
- // self.colorTempSlider.value = 0
- return
- }
- let index = Int(sender.value + 0.5)
- let value = Int(index * 300) + 3000
- log.debug("最终值 --- \(value)")
- if let delegate = self.delegate {
- delegate.adjustColorTemperature(value)
- }
- }
-
- @IBAction func colorValueChange(_ sender: UISlider) {
-
- //let value = sender.value
- let index = Int(sender.value + 0.5)
- colorTempSlider.setValue(Float(index), animated: false)
- self.colorTempLabel.text = "\(index * 300 + 3000)k"
- }
-
-
- @IBAction func brightValueChange(_ sender: UISlider) {
- let bright = (sender.value )
-
- self.brightLabel.text = "\(Int(bright))%"
- }
-
-
-
- private 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!
- }
- }
- extension IHRoomLightColorCell:IHColorAdjustmentViewDelegate{
- func colorAdjustmentViewChangedColor(red: Int, green: Int, blue: Int) {
- if self.switchStatus == "0" {
- g_showHUD("此灯已关")
- // colorAdjustmentView.colorStruct = ColorStruct(Red: 0, Green: 0, Blue: 0)
- return
- }
- if let delegete = self.delegate {
- delegete.adjustColor(red, green: green, blue: blue)
- }
- }
-
-
- }
|