IHPanelSettingView.swift 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
  1. //
  2. // IHPanelSettingView.swift
  3. // Inhealth
  4. //
  5. // Created by weclouds on 2020/7/25.
  6. // Copyright © 2020 weclouds. All rights reserved.
  7. //
  8. import UIKit
  9. import PKHUD
  10. protocol PanelSettingViewDelegate : NSObjectProtocol{
  11. func setPanelMode(dataList : [[String : String]])
  12. }
  13. class IHPanelSettingView: UIView {
  14. //var dataSource = [["Button 1" : "Attend class mode"],["Button 2" : "Finish class mode"],["Button 3" : "Projection mode"],["Button 4" : "Full-on mode"], ["Button 5" : "Full-off mode"],["Button 6" : "Self-study mode"]]
  15. var tableView : UITableView?
  16. weak var delegate : PanelSettingViewDelegate?
  17. var dataSource = [[String : String]]()
  18. //(1 全开模式,2 全关模式,3 投影模式,4 自习模式,5 板书模式,7 上课模式,8 下课模式,9 午休模式
  19. //上课模式 下课模式 投影模式 全开模式 全关模式 自习模式
  20. var panelMode : PanelModel?{
  21. didSet{
  22. let data1 = setModeData(indexBtn: 1, keyValue: (panelMode?.key1)!)
  23. let data2 = setModeData(indexBtn: 2, keyValue: (panelMode?.key2)!)
  24. let data3 = setModeData(indexBtn: 3, keyValue: (panelMode?.key3)!)
  25. let data4 = setModeData(indexBtn: 4, keyValue: (panelMode?.key4)!)
  26. let data5 = setModeData(indexBtn: 5, keyValue: (panelMode?.key5)!)
  27. let data6 = setModeData(indexBtn: 6, keyValue: (panelMode?.key6)!)
  28. dataSource.append(data1)
  29. dataSource.append(data2)
  30. dataSource.append(data3)
  31. dataSource.append(data4)
  32. dataSource.append(data5)
  33. dataSource.append(data6)
  34. //更新数据
  35. self.tableView?.reloadData()
  36. }
  37. }
  38. private func setModeData(indexBtn : Int, keyValue : String) ->[String : String]{
  39. //["Full-on mode","Full-off mode" ,"Attend class mode","Finish class mode","Noon break mode" ,"Self-study mode","Blackboard mode" ,"Projection mode"]
  40. // 1 全开模式,2 全关模式,3 投影模式,4 自习模式,5 板书模式,7 上课模式,8 下课模式,9 午休模式)
  41. var key = ""
  42. if "1" == keyValue {
  43. key = "全开模式"
  44. }else if "2" == keyValue {
  45. key = "全关模式"
  46. }else if "3" == keyValue {
  47. key = "投影模式"
  48. }else if "4" == keyValue{
  49. key = "自习模式"
  50. }else if "5" == keyValue{
  51. key = "板书模式"
  52. }else if "7" == keyValue {
  53. key = "上课模式"
  54. }else if "8" == keyValue {
  55. key = "下课模式"
  56. }else if "9" == keyValue{
  57. key = "午休模式"
  58. }
  59. return ["按键 \(indexBtn)" : key]
  60. }
  61. override init(frame: CGRect) {
  62. super.init(frame: frame)
  63. self.createUI()
  64. NotificationCenter.default.addObserver(self, selector: #selector(setPanelMode), name: NSNotification.Name(KNotifitionPanel), object: nil)
  65. }
  66. @objc func setPanelMode(noti : NSNotification){
  67. let dic = noti.userInfo
  68. let indexPath = dic?["indexPath"] as! IndexPath
  69. let choseValue = dic?["choseValue"] as! String
  70. var choseDic = self.dataSource[indexPath.row]
  71. choseDic.updateValue(choseValue, forKey: (choseDic.keys.first)!)
  72. //更新数组
  73. self.dataSource[indexPath.row] = choseDic
  74. //更新tableview
  75. self.tableView?.reloadRows(at: [indexPath], with: .automatic)
  76. }
  77. deinit {
  78. NotificationCenter.default.removeObserver(self)
  79. }
  80. required init?(coder: NSCoder) {
  81. fatalError("init(coder:) has not been implemented")
  82. }
  83. func createUI() {
  84. if KNavBarHeight == 64 {
  85. self.tableView = UITableView.init(frame: CGRect.init(x: 0, y: 0, width: KSCREENWIDTH, height: KSCREENHEIGHT - KNavBarHeight - 70), style: .plain)
  86. }else {
  87. self.tableView = UITableView.init(frame: CGRect.init(x: 0, y: 0, width: KSCREENWIDTH, height: KSCREENHEIGHT - KNavBarHeight - 34 - 70), style: .plain)
  88. }
  89. tableView?.dataSource = self
  90. tableView?.delegate = self
  91. tableView?.separatorStyle = .none
  92. tableView?.rowHeight = 120.0
  93. //self.tableView = tableView
  94. self.addSubview(tableView!)
  95. let between : CGFloat = 30.0
  96. let saveBtn = UIButton.init(frame: CGRect.init(x: between, y: tableView!.size.height + 20.0, width: KSCREENWIDTH - between * 2, height: 40))
  97. saveBtn.setTitle("保存", for: .normal)
  98. saveBtn.backgroundColor = UIColor.init(hexString: "#573F95")
  99. saveBtn.addTarget(self, action: #selector(saveValueBtn), for: .touchUpInside)
  100. saveBtn.layer.cornerRadius = 5
  101. saveBtn.layer.masksToBounds = true
  102. self.addSubview(saveBtn)
  103. }
  104. }
  105. extension IHPanelSettingView {
  106. @objc func saveValueBtn(sender : UIButton){
  107. // HUD.flash(.label("加载中..."), delay: 8)
  108. HUD.flash(.progress, delay: 8.0)
  109. self.delegate?.setPanelMode(dataList: self.dataSource)
  110. }
  111. }
  112. extension IHPanelSettingView : UITableViewDelegate,UITableViewDataSource{
  113. func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
  114. return self.dataSource.count
  115. }
  116. func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
  117. let cell = IHPanelSettingCell.panelCellWithTableViewAndIndexPath(tableView: tableView, indexPath: indexPath)
  118. cell.indexPath = indexPath
  119. cell.dataSource = self.dataSource[indexPath.row]
  120. return cell
  121. }
  122. }