203 lines
7.2 KiB
Swift
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")
|
|
}
|
|
|
|
}
|