Files
yingmeng-ios-switf/yinmeng-ios/Modules/User/View/UserFunctionView.swift
2024-03-05 14:04:09 +08:00

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
}()
}