Veloria/Veloria/Class/Me/View/VPMeToolCell.swift
2025-06-12 18:24:39 +08:00

106 lines
3.4 KiB
Swift

//
// VPMeToolCell.swift
// Veloria
//
// Created by on 2025/5/28.
//
import UIKit
class VPMeToolCell: VPTableViewCell {
private lazy var stackView: UIStackView = {
let view = UIStackView(arrangedSubviews: [walletButton, storeButton, /*rewardsButton,*/ favoritesButton])
view.axis = .horizontal
view.distribution = .fillEqually
view.alignment = .center
return view
}()
private lazy var walletButton: UIButton = {
let button = self.createButton(icon: UIImage(named: "wallet_icon_01"), title: "veloria_wallet".localized)
button.addTarget(self, action: #selector(handleWalletButton), for: .touchUpInside)
return button
}()
private lazy var storeButton: UIButton = {
let button = self.createButton(icon: UIImage(named: "store_icon_01"), title: "veloria_store".localized)
button.addTarget(self, action: #selector(handleStoreButton), for: .touchUpInside)
return button
}()
private lazy var rewardsButton: UIButton = {
let button = self.createButton(icon: UIImage(named: "rewards_icon_01"), title: "veloria_rewards".localized)
button.addTarget(self, action: #selector(handleRewardsButton), for: .touchUpInside)
return button
}()
private lazy var favoritesButton: UIButton = {
let button = self.createButton(icon: UIImage(named: "favorites_icon_01"), title: "veloria_favorites".localized)
button.addTarget(self, action: #selector(handleFavoritesButton), for: .touchUpInside)
return button
}()
override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
super.init(style: style, reuseIdentifier: reuseIdentifier)
contentView.backgroundColor = .colorFFFFFF(alpha: 0.1)
vp_setupUI()
}
@MainActor required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
private func createButton(icon: UIImage?, title: String) -> UIButton {
let button = JXButton(type: .custom)
button.setTitle(title, for: .normal)
button.jx_font = .fontRegular(ofSize: 12)
button.setTitleColor(.colorFFFFFF(), for: .normal)
button.titleDirection = .down
button.setImage(icon, for: .normal)
button.space = 0
return button
}
}
extension VPMeToolCell {
@objc private func handleWalletButton() {
let vc = VPWalletViewController()
self.viewController?.navigationController?.pushViewController(vc, animated: true)
}
@objc private func handleStoreButton() {
let vc = VPVipPageViewController()
self.viewController?.navigationController?.pushViewController(vc, animated: true)
}
@objc private func handleRewardsButton() {
let vc = VPRewardsViewController()
self.viewController?.navigationController?.pushViewController(vc, animated: true)
}
@objc private func handleFavoritesButton() {
let tabbarVC = VPAppTool.rootViewController as? VPTabBarController
tabbarVC?.openCollectPage()
}
}
extension VPMeToolCell {
private func vp_setupUI() {
contentView.addSubview(stackView)
stackView.snp.makeConstraints { make in
make.left.right.top.bottom.equalToSuperview()
make.height.equalTo(105)
}
}
}