123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183 |
- //
- // IHSceneModeView.swift
- // Inhealth
- //
- // Created by weclouds on 2020/3/7.
- // Copyright © 2020 weclouds. All rights reserved.
- //
- import UIKit
- protocol IHSceneModeViewDelegate : NSObjectProtocol{
- func sceneModeViewSetting(roomId:String,light:String?,color:String?,colorR:String?,colorG:String?,colorB:String?,status:String?,level:String?)
- }
- class IHSceneModeView: UIView {
- var delegate : IHSceneModeViewDelegate?
- 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 purifierStatus: String? = "0"
-
- var purifierLevel:String? = "1"
-
- @IBOutlet weak var BOX: UIView!
- @IBOutlet weak var boxHeightConstraint: NSLayoutConstraint!
- @IBOutlet weak var brightnessLabel: UILabel!
-
- @IBOutlet weak var brightnessSlider: IHSlider!
-
- @IBOutlet weak var colorTemperatureSlider: IHSlider!
-
- @IBOutlet weak var colorTemperatureSliderLabel: UILabel!
-
- @IBOutlet weak var scenceBox: UIView!
-
- @IBOutlet weak var scenceModeLabel: UILabel!
-
- @IBOutlet weak var purifierBox: UIView!
-
- @IBOutlet weak var purifierLevelLabel: UILabel!
-
- @IBOutlet weak var exchangeSwitch: UIButton!
-
- @IBOutlet weak var ColorBoxView: UIView!
- 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: "yellowThumb")!, scaleToSize: CGSize(width: 20, height: 20))
- colorTemperatureSlider.setThumbImage(image1, for: .normal)
- colorTemperatureSlider.setThumbImage(image1, for: .highlighted)
- let image2 = originImage(UIImage(named: "greenThumb")!, scaleToSize: CGSize(width: 20, height: 20))
- brightnessSlider.setThumbImage(image2, for: .normal)
- brightnessSlider.setThumbImage(image2, for: .highlighted)
-
- }
- ///添加点击手势
- func addGesture() {
-
- let scenceTap = UITapGestureRecognizer(target: self, action: #selector(tapScenceBoxAction))
- scenceBox.addGestureRecognizer(scenceTap)
-
- let purifierTap = UITapGestureRecognizer(target: self, action: #selector(tapPurifierBoxAction))
- purifierBox.addGestureRecognizer(purifierTap)
-
- }
-
- @IBAction func preserveAction(_ sender: Any) {
- if let delegate = self.delegate{
- delegate.sceneModeViewSetting(roomId: self.roomId!, light: self.light, color: self.color, colorR: self.colorR, colorG: self.colorG, colorB: self.colorB, status: self.purifierStatus, level: self.purifierLevel)
- }
- }
-
- @IBAction func brightnessEndChange(_ sender: IHSlider) {
- self.light = "\(Int(sender.value))"
- log.debug(Int(sender.value))
- let bright = (sender.value)
- self.brightnessLabel.text = "\(Int(bright))%"
- }
-
-
-
-
- @IBAction func colorTempEndChange(_ sender: IHSlider) {
- 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)"
- }
-
- @objc func tapScenceBoxAction() {
- log.debug(" tapScenceBoxAction")
- let titleArr = ["Custom mode","Reading mode","Full-on mode","Sleep mode","Relax mode","Work mode"]
- let pick = THScrollChooseView(question: titleArr, withDefaultDesc: titleArr.first)
- pick?.confirmBlock = {(selectedIndex) in
- log.debug(" title = \(titleArr[selectedIndex])")
- self.scenceModeLabel.text = titleArr[selectedIndex]
- if selectedIndex == 0{
- self.boxHeightConstraint.constant = 495
- self.BOX.isHidden = false
- }else{
- self.boxHeightConstraint.constant = 0
- self.BOX.isHidden = true
- }
- }
- pick?.show()
- }
-
- @objc func tapPurifierBoxAction() {
- log.debug(" tapPurifierBoxAction")
- let titleArr = ["Low","Middle","High"]
- 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 statusSwitch(_ sender: UIButton) {
- sender.isSelected = !sender.isSelected
- self.purifierStatus = sender.isSelected == true ? "1" : "0"
- }
- 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 IHSceneModeView :IHColorAdjustmentViewDelegate{
- func colorAdjustmentViewChangedColor(red: Int, green: Int, blue: Int) {
- self.colorR = "\(red)"
- self.colorG = "\(green)"
- self.colorB = "\(blue)"
- }
- }
-
|