106 lines
3.4 KiB
Swift
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)
|
|
}
|
|
|
|
}
|
|
|
|
}
|