SynthReel/SynthReel/Class/Home/V/SRHomeModuleView.swift
2025-11-26 09:17:04 +08:00

111 lines
3.1 KiB
Swift

//
// SRHomeModuleView.swift
// SynthReel
//
// Created by on 2025/11/15.
// Copyright © 2025 SR. All rights reserved.
//
import UIKit
import SnapKit
class SRHomeModuleView: UIView {
var didSelectedShort: ((_ model: SRShortModel?) -> Void)?
var onButtonTapped: (() -> Void)?
var module_key: SRHomeModuleItem.ModuleKey?
lazy var titleLabel: UILabel = {
let label = UILabel()
label.font = .font(ofSize: 18, weight: .bold)
label.textColor = .white
return label
}()
// lazy var indicatorImageView = UIImageView(image: UIImage(named: "arrow_right_icon_01"))
private var indicatorImageView: UIImageView?
lazy var button: UIControl = {
let button = UIButton(frame: .zero, primaryAction: UIAction(handler: { [weak self] _ in
guard let self = self else { return }
onButtonTapped?()
}))
return button
}()
override init(frame: CGRect) {
super.init(frame: frame)
// addSubview(button)
// button.addSubview(titleLabel)
// button.addSubview(indicatorImageView)
//
// button.snp.makeConstraints { make in
// make.left.equalToSuperview().offset(15)
// make.right.equalToSuperview().offset(-15)
// make.top.equalToSuperview()
// make.height.equalTo(40)
// }
//
// titleLabel.snp.makeConstraints { make in
// make.centerY.equalToSuperview()
// make.left.equalToSuperview()
// }
//
// indicatorImageView.snp.makeConstraints { make in
// make.centerY.equalToSuperview()
// make.right.equalToSuperview()
// }
//
addSubview(button)
button.addSubview(titleLabel)
button.snp.makeConstraints { make in
make.left.equalToSuperview().offset(15)
make.right.equalToSuperview().offset(-15)
make.top.equalToSuperview()
make.height.equalTo(40)
}
titleLabel.snp.makeConstraints { make in
make.centerY.equalToSuperview()
make.left.equalToSuperview()
}
}
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
}
// MARK: - Public API
extension SRHomeModuleView {
///
func showIndicator(_ show: Bool) {
if show {
//
if indicatorImageView != nil { return }
let arrow = UIImageView(image: UIImage(named: "arrow_right_icon_01"))
arrow.contentMode = .scaleAspectFit
indicatorImageView = arrow
button.addSubview(arrow)
arrow.snp.makeConstraints { make in
make.centerY.equalToSuperview()
make.right.equalToSuperview()
}
} else {
//
indicatorImageView?.removeFromSuperview()
indicatorImageView = nil
}
}
}