123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159 |
- //
- // IHPanelSettingCellTableViewCell.swift
- // Inhealth
- //
- // Created by weclouds on 2020/7/25.
- // Copyright © 2020 weclouds. All rights reserved.
- //
- import UIKit
- let KNotifitionPanel = "KNotifitionPanel"
- class IHPanelSettingCell: UITableViewCell {
- private var labelTitle : UILabel?
- private var leftBrightnessBtn : UIButton?
- private var valueBackView : UIView?
- private var tableView : UITableView?
- var indexPath : IndexPath?
- private var choseBtnTag : Int = 0
- private var choseValue : String = ""
-
- let model = ["全开模式","全关模式" ,"上课模式","下课模式","午休模式" ,"自习模式","板书模式" ,"投影模式"]
-
- //let model = ["Attend class mode","Finish class mode","Projection mode","Full-on mode","Full-off mode","Self-study mode"]
-
- var dataSource : [String: String]?{
- didSet{
- labelTitle?.text = dataSource?.keys.first!
- if let value = dataSource?.values.first {
- leftBrightnessBtn?.setTitle(value, for: .normal)
- }
-
- }
- }
- class func panelCellWithTableViewAndIndexPath(tableView : UITableView,indexPath : IndexPath) ->IHPanelSettingCell {
- let panelId = "panelId"
- var cell = tableView.dequeueReusableCell(withIdentifier: panelId)
- if cell == nil{
- cell = IHPanelSettingCell.init(style: .default, reuseIdentifier: panelId, tableView: tableView, indexPath: indexPath)
- }
- return cell as! IHPanelSettingCell
- }
- init(style: UITableViewCell.CellStyle, reuseIdentifier: String?,tableView : UITableView,indexPath : IndexPath){
- super.init(style: style, reuseIdentifier: reuseIdentifier)
- self.tableView = tableView
- //self.indexPath = indexPath
- createUI()
- }
-
- required init?(coder: NSCoder) {
- fatalError("init(coder:) has not been implemented")
- }
- }
- extension IHPanelSettingCell {
- func createUI(){
- let backView = UIView.init(frame: CGRect.init(x: 0, y: 0, width: KSCREENWIDTH, height: 120))
- backView.backgroundColor = .white
-
- //line
- let line = UIView.init(frame: CGRect.init(x: 0, y: 119, width: KSCREENWIDTH, height: 1))
- line.backgroundColor = UIColor.init(red: 246/255.0, green: 245/255.0, blue: 248/255.0, alpha: 1.0)
- backView.addSubview(line)
-
- //上
- let labelTitle = UILabel.init(frame: CGRect.init(x: 5, y: 0, width: KSCREENWIDTH, height: 40))
- labelTitle.backgroundColor = UIColor.init(red: 246/255.0, green: 245/255.0, blue: 248/255.0, alpha: 1.0)
- backView.addSubview(labelTitle)
- self.labelTitle = labelTitle
-
- let h : CGFloat = 50
- //下
- let choseView = UIView.init(frame: CGRect.init(x: 0, y: 40, width: KSCREENWIDTH, height: h))
- backView.addSubview(choseView)
-
-
- let leftBrightnessBtn = UIButton.init(frame: CGRect.init(x: 10, y: 0, width: KSCREENWIDTH - 10 * 2, height: h))
- leftBrightnessBtn.setTitle("100%", for: .normal)
- leftBrightnessBtn.setTitleColor(.black, for: .normal)
- leftBrightnessBtn.setImage(UIImage.init(named: "xialaIcon"), for: .normal)
- leftBrightnessBtn.titleLabel?.font = UIFont.systemFont(ofSize: 15.0)
- leftBrightnessBtn.titleEdgeInsets = UIEdgeInsets.init(top: 0, left: -20, bottom: 0, right: 0)
- leftBrightnessBtn.semanticContentAttribute = .forceRightToLeft
- leftBrightnessBtn.addTarget(self, action: #selector(choseBrightness), for: .touchUpInside)
- leftBrightnessBtn.tag = 1
- //leftView.addSubview(leftBrightnessBtn)
- choseView.addSubview(leftBrightnessBtn)
-
- self.leftBrightnessBtn = leftBrightnessBtn
-
-
- self.contentView.addSubview(backView)
-
- }
-
- }
- extension IHPanelSettingCell {
- @objc func choseBrightness(sender : UIButton){
- self.choseBtnTag = sender.tag
- if valueBackView != nil {
- valueBackView?.removeFromSuperview()
- }
- createChosePicker(sender: sender)
- }
-
-
- func createChosePicker(sender : UIButton) {
- let point = sender.convert(sender.frame.origin, to: self.tableView)
-
- var valueBackView = UIView.init(frame: CGRect.init(x: (KSCREENWIDTH - point.x * 2) * 0.3 , y: point.y + 45, width: 200, height: 150))
- //屏幕底下的显示
- if (KSCREENHEIGHT - point.y) < 150 {
- //左侧的
- valueBackView = UIView.init(frame: CGRect.init(x: (KSCREENWIDTH - point.x * 2) * 0.3, y: point.y - 35 - 150, width: 200, height: 150))
-
- }
- valueBackView.backgroundColor = .lightGray
- self.tableView?.addSubview(valueBackView)
- self.valueBackView = valueBackView
-
- let valueTableView = UITableView.init(frame: CGRect.init(x: 1, y: 1, width: 198, height: 148))
- valueTableView.dataSource = self
- valueTableView.delegate = self
- valueTableView.rowHeight = 40
- valueBackView.addSubview(valueTableView)
- }
- }
- extension IHPanelSettingCell : UITableViewDataSource,UITableViewDelegate{
- func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
- return self.model.count
- }
-
- func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
- let panelModelId = "panelModelId"
- var cell = tableView.dequeueReusableCell(withIdentifier: panelModelId)
- if cell == nil {
- cell = UITableViewCell.init(style: .default, reuseIdentifier: panelModelId)
- }
- cell?.textLabel?.text = self.model[indexPath.row]
- return cell!
- }
-
- func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
- if self.choseBtnTag == 1 {
- self.choseValue = model[indexPath.row]
- leftBrightnessBtn?.setTitle(choseValue, for: .normal)
- choseBtnTag = 0
- valueBackView?.removeFromSuperview()
-
- NotificationCenter.default.post(name: NSNotification.Name(rawValue: KNotifitionPanel), object: nil, userInfo: ["indexPath" : self.indexPath!, "choseValue" : choseValue])
- }
-
- }
-
- }
|