99 lines
2.4 KiB
Swift
99 lines
2.4 KiB
Swift
//
|
|
// UserFunctionView.swift
|
|
// yinmeng-ios
|
|
//
|
|
// Created by yinmeng on 2024/2/26.
|
|
//
|
|
|
|
import UIKit
|
|
|
|
protocol UserFunctionViewProtocol: NSObjectProtocol {
|
|
func didClickItem(type: UserFunctionType)
|
|
}
|
|
|
|
class UserFunctionView: BaseView {
|
|
weak var delegate: UserFunctionViewProtocol?
|
|
|
|
var item:UserFunctionItem? {
|
|
didSet {
|
|
guard let item = item else {return}
|
|
self.titleLb.text = item.title
|
|
self.logoImgView.isHidden = item.isHiddenIcon
|
|
}
|
|
}
|
|
|
|
@objc func tapViewRecognizer() {
|
|
if let type = item?.itmeType {
|
|
delegate?.didClickItem(type: type)
|
|
}
|
|
}
|
|
|
|
override func loadSubViews() {
|
|
super.loadSubViews()
|
|
self.layer.masksToBounds = true
|
|
self.layer.cornerRadius = 8
|
|
self.backgroundColor = ThemeColor(hexStr: "#525566")
|
|
let tap = UITapGestureRecognizer(target: self, action: #selector(tapViewRecognizer))
|
|
addGestureRecognizer(tap)
|
|
|
|
addSubview(stackView)
|
|
addSubview(moreImgView)
|
|
stackView.addArrangedSubview(logoImgView)
|
|
stackView.addArrangedSubview(titleLb)
|
|
|
|
stackView.snp.makeConstraints { make in
|
|
make.left.equalTo(self).offset(24)
|
|
make.centerY.equalTo(self)
|
|
}
|
|
|
|
logoImgView.snp.makeConstraints { make in
|
|
make.size.equalTo(CGSize(width: 23, height: 23))
|
|
}
|
|
|
|
titleLb.snp.makeConstraints { make in
|
|
make.height.equalTo(22)
|
|
}
|
|
|
|
moreImgView.snp.makeConstraints { make in
|
|
make.size.equalTo(CGSize(width: 16, height: 16))
|
|
make.centerY.equalTo(self)
|
|
make.right.equalTo(self).offset(-24)
|
|
}
|
|
}
|
|
|
|
private lazy var stackView: UIStackView = {
|
|
let stackView = UIStackView()
|
|
stackView.distribution = .fill
|
|
stackView.axis = .horizontal
|
|
stackView.alignment = .center
|
|
stackView.spacing = 8
|
|
return stackView
|
|
}()
|
|
|
|
private lazy var logoImgView: UIImageView = {
|
|
let imageView = UIImageView()
|
|
imageView.image = UIImage(named: "user_function_diamond")
|
|
imageView.isUserInteractionEnabled = true
|
|
imageView.layer.masksToBounds = true
|
|
imageView.contentMode = .scaleAspectFill
|
|
return imageView
|
|
}()
|
|
|
|
private lazy var titleLb: UILabel = {
|
|
let label = UILabel()
|
|
label.textColor = .white
|
|
label.font = UIFont.systemFont(ofSize: 16, weight: .medium)
|
|
return label
|
|
}()
|
|
|
|
private lazy var moreImgView: UIImageView = {
|
|
let imageView = UIImageView()
|
|
imageView.image = UIImage(named: "user_function_more")
|
|
imageView.isUserInteractionEnabled = true
|
|
imageView.layer.masksToBounds = true
|
|
imageView.contentMode = .scaleAspectFill
|
|
return imageView
|
|
}()
|
|
|
|
}
|