VPCamera/SwiftProject/SwiftProject/Project/View/CCMineView.swift
2024-03-14 15:02:53 +08:00

190 lines
6.6 KiB
Swift

//
// CCMineView.swift
// SwiftProject
//
// Created by soldoros on 2024/1/10.
//
import UIKit
typealias CCMineViewBlock = (_ dataDic:NSDictionary) -> ()
class CCMineView: UIView,UITableViewDelegate,UITableViewDataSource{
var handle:CCMineViewBlock?
var mTableView:UITableView?
var datas = NSMutableArray()
var mImgView:UIImageView?
var mLabel:UILabel?
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
override init(frame: CGRect) {
super.init(frame: frame)
let layer0 = CAGradientLayer()
layer0.colors = [
UIColor(red: 0.172, green: 0.153, blue: 0.212, alpha: 1).cgColor,
UIColor(red: 0.271, green: 0.176, blue: 0.521, alpha: 1).cgColor
]
layer0.locations = [0, 1]
layer0.startPoint = CGPoint(x:0.5, y: 0)
layer0.endPoint = CGPoint(x: 0.5, y: 1)
layer0.frame = self.bounds
self.layer.addSublayer(layer0)
mImgView = UIImageView()
mImgView!.bounds = CGRect(x: 0, y: 0, width: 48, height: 48)
mImgView!.top = 26
mImgView!.left = 32
self.addSubview(mImgView!)
mImgView!.backgroundColor = BackGroundColor
mImgView!.image = UIImage(named: "logo")
mImgView!.clipsToBounds = true
mImgView!.layer.cornerRadius = 4
mLabel = UILabel()
mLabel!.bounds = CGRect(x: 0, y: 0, width: 100, height: 0)
mLabel!.textColor = UIColor.white
mLabel!.font = UIFont.systemFont(ofSize: 16)
self.addSubview(mLabel!)
mLabel!.text = "Nova keyboard"
mLabel!.sizeToFit()
mLabel!.centerY = mImgView!.centerY
mLabel!.left = mImgView!.right + 15
self.mTableView = UITableView.init(frame: CGRect.init(x: 0, y: 100, width: self.width, height: self.height - 100), style: UITableView.Style.grouped)
self.addSubview(self.mTableView!)
self.mTableView!.delegate = (self as UITableViewDelegate)
self.mTableView!.dataSource = (self as UITableViewDataSource)
self.mTableView!.backgroundColor = UIColor.clear
self.mTableView!.backgroundView?.backgroundColor = UIColor.clear
self.mTableView!.rowHeight = UITableView.automaticDimension
self.mTableView!.sectionHeaderHeight = 0
self.mTableView!.sectionFooterHeight = 0
self.mTableView!.estimatedRowHeight = 70
self.mTableView?.contentInset = UIEdgeInsets.init(top: 0, left: 0, bottom: 0, right: 0)
self.mTableView!.scrollIndicatorInsets = self.mTableView!.contentInset
self.mTableView!.separatorStyle = UITableViewCell.SeparatorStyle.none
mTableView!.register(CCMineCell.classForCoder(), forCellReuseIdentifier: CCMineCellId)
addDatas()
}
func addDatas(){
// let arr = [["img":"Icon_Menu_all_Icon_Connect",
// "name":"VR"],
// ["img":"Icon_Menu_all_Icon_Connect",
// "name":""],
// ["img":"Icon_Menu_all_Icon_Connect",
// "name":""]]
let arr = [["img":"Icon_Menu_all_Icon_Connect",
"name":"联系我们"],
["img":"Icon_Menu_all_Icon_Privacy",
"name":"隐私政策"]]
datas.addObjects(from: arr)
self.mTableView!.reloadData()
}
func numberOfSections(in tableView: UITableView) -> Int {
return 1
}
func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
return 0.01
}
func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat {
return 0.01
}
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
return CCMineCellH
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return datas.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell:CCMineCell = tableView.dequeueReusableCell(withIdentifier: CCMineCellId)! as! CCMineCell
cell.selectionStyle = UITableViewCell.SelectionStyle.none
cell.indexPath = indexPath
cell.dataDic = (datas[indexPath.row] as! NSDictionary)
return cell
}
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
self.handle!((datas[indexPath.row] as! NSDictionary))
}
}
let CCMineCellId = "CCMineCellId"
let CCMineCellH = 72.0
let CCMineCellW = SCREEN_Width - 108
class CCMineCell: UITableViewCell {
var mImgView:UIImageView?
var mLabel:UILabel?
var mLine:UIView?
override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
super.init(style: UITableViewCell.CellStyle.default, reuseIdentifier: reuseIdentifier)
self.backgroundColor = UIColor.clear
self.contentView.backgroundColor = UIColor.clear
mImgView = UIImageView()
mImgView!.bounds = CGRect(x: 0, y: 0, width: 24, height: 24)
mImgView!.centerY = CCMineCellH * 0.5
mImgView!.left = 32
self.contentView.addSubview(mImgView!)
mLabel = UILabel()
mLabel!.bounds = CGRect(x: 0, y: 0, width: 100, height: 0)
mLabel!.textColor = UIColor.white
mLabel!.font = UIFont.systemFont(ofSize: 14)
self.contentView.addSubview(mLabel!)
mLine = UIView()
mLine!.frame = CGRect(x: 16, y: CCMineCellH - 0.5, width: CCMineCellW - 32, height: 0.5)
mLine!.backgroundColor = UIColor.colorWithRGB(_r: 255, _g: 255, _b: 255, alpha: 0.5)
self.contentView.addSubview(mLine!)
}
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
public var indexPath:IndexPath?
private var _dataDic:NSDictionary?
var dataDic:NSDictionary?{
didSet{
_dataDic = dataDic
mImgView!.image = UIImage(named: _dataDic!["img"] as! String)
mLabel!.text = (_dataDic!["name"] as! String)
mLabel!.sizeToFit()
mLabel!.centerY = CCMineCellH * 0.5
mLabel!.left = mImgView!.right + 10
if(indexPath?.row != 2){
mLine!.isHidden = false
}else{
mLine!.isHidden = true
}
}
}
}