VPCamera/SwiftProject/SwiftProject/Project/View/DeviceOperation/CCDeviceOperationListView.swift
2024-04-08 09:46:46 +08:00

203 lines
7.2 KiB
Swift

//
// CCDeviceOperationListView.swift
// SwiftProject
//
// Created by Zhang, Joyce on 2024/2/24.
//
import UIKit
private let Back_Height = 700
class CCDeviceOperationListView: UIView,UITableViewDelegate, UITableViewDataSource {
var dataArray: [[String:String]]=[["iconImageName":"device_vr","name":NSLocalizedString("雷鸟Air2", comment: ""),"tipsImageName":"vr_1","tips":NSLocalizedString("左右按键同时按一次", comment: "")],
["iconImageName":"device_vr","name":NSLocalizedString("雷鸟Air Pro", comment: ""),"tipsImageName":"vr_2","tips":NSLocalizedString("右侧拨轮下按3s", comment: "")],
["iconImageName":"device_vr","name":"Xreal Alr2","tipsImageName":"vr_3","tips":NSLocalizedString("右侧中间键长按3s", comment: "")],
["iconImageName":"device_vr","name":"Rokid max","tipsImageName":"vr_4","tips":NSLocalizedString("右侧亮度循环按键", comment: "")]]
let TopCellId = "CCDeviceOperationListCell"
lazy var backView: UIView = {
let imageView = UIView()
imageView.backgroundColor = UIColor(hexString: "#1F1E20")
return imageView
}()
lazy var listTableView:UITableView = {
let tableView = UITableView(frame: CGRect.zero, style: .plain)
tableView.showsVerticalScrollIndicator = false
tableView.backgroundColor = UIColor(hexString: "#1F1E20")
// tableView.backgroundColor = .orange
tableView.delegate = self
tableView.dataSource = self
tableView.register(CCDeviceOperationListCell.self, forCellReuseIdentifier: TopCellId)
tableView.contentInsetAdjustmentBehavior = .never
tableView.contentInset = UIEdgeInsets(top: 0, left: 0, bottom: 0, right: 0 )
// tableView.estimatedRowHeight = 0
// tableView.estimatedSectionHeaderHeight = 0
// tableView.estimatedSectionFooterHeight = 0
//线
tableView.separatorStyle = .none
return tableView
}()
lazy var closeButton: UIButton = {
let button = UIButton(type: .custom)
// button.setImage(UIImage.init(named: "login_button_normal"), for: .normal)
// button.setImage(UIImage.init(named: "login_ckeck_button_selected"), for: .highlighted)
button.backgroundColor = KMain_Color
button.layer.cornerRadius = 8
button.clipsToBounds = true
button.titleLabel?.font = KFont_Medium(14)
button.titleLabel?.textColor = KTextColor_White
button.setTitle("了解了", for: .normal)
button.setTitleColor(KTextColor_White, for: .normal)
button.addTarget(self, action: #selector(closeButtonAction), for: .touchUpInside)
return button
}();
override init(frame: CGRect) {
super.init(frame: frame)
self.backgroundColor = UIColor.black.withAlphaComponent(0.5)
self.addSubview(backView)
backView.addSubview(closeButton)
backView.addSubview(listTableView)
backView.frame = CGRect.init(x: 0, y: KScreenHeight+10 , width: KScreenWidth, height: CGFloat(Back_Height))
closeButton.snp.makeConstraints { (make) in
make.bottom.equalTo(backView.snp.bottom).offset(-36)
make.centerX.equalTo(backView.snp.centerX)
make.width.equalTo(345)
make.height.equalTo(54)
}
listTableView.snp.makeConstraints { (make) in
make.bottom.equalTo(closeButton.snp.top).offset(-16)
make.leading.equalTo(backView.snp.leading)
make.trailing.equalTo(backView.snp.trailing)
make.top.equalToSuperview()
}
show()
}
func show() {
UIView.animate(withDuration: 0.25, animations: {
self.listTableView.alpha = 1.0
self.backView.frame = CGRect.init(x: 0, y: Int(KScreenHeight) - Back_Height, width: Int(KScreenWidth), height: Back_Height)
}) { (isFinished) in
self.listTableView.reloadData()
}
}
func hide() {
UIView.animate(withDuration: 0.25, animations: { [self] in
self.listTableView.alpha = 0
self.backView.frame = CGRect.init(x: 0, y: KScreenHeight + 10 , width: KScreenWidth, height: CGFloat(Back_Height))
}) { (isFinished) in
self.removeFromSuperview()
}
}
@objc func closeButtonAction(_ btn:UIButton) {
print("点击了取消")
self.hide()
}
//MARK: - ========== UITableViewDataSource ==========
//cell
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return dataArray.count
}
// cell
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
return 125
}
//cell
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
var cell:CCDeviceOperationListCell? = (tableView.dequeueReusableCell(withIdentifier: TopCellId) as! CCDeviceOperationListCell)
if cell == nil {
cell = CCDeviceOperationListCell(style: .subtitle, reuseIdentifier: TopCellId)
}
//
cell?.selectionStyle = .none
cell?.backgroundColor = .clear
let dict = dataArray[indexPath.row]
let iconImageName:String = dict["iconImageName"]!
let tipsImageName:String = dict["tipsImageName"]!
let name:String = dict["name"]!
let tips:String = dict["tips"]!
cell?.setCellData(iconImageName: iconImageName, name: name, tipsImageName: tipsImageName, tips: tips)
return cell!
}
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
}
//MARK: - ========== UITableViewDelegate ==========
func numberOfSections(in tableView: UITableView) -> Int {
return 1
}
func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
return 52
}
func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
let headerView :UIView = UIView.init(frame: CGRect.init(x: 0, y: 0, width: tableView.frame.size.width, height: 52))
headerView.backgroundColor = backView.backgroundColor//.clear
//title
let label = UILabel()
label.text = "常用AR设备操作"
label.backgroundColor = UIColor.clear
label.font = KFont_Medium(18)
label.textColor = KTextColor_White
label.textAlignment = .center
headerView.addSubview(label)
//
label.snp.makeConstraints { (make) in
make.centerY.equalTo(headerView.snp.centerY)
make.centerX.equalTo(headerView.snp.centerX)
}
return headerView
}
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
}