Visual_Novel_iOS/crush/Crush/Src/Modules/Discover/View/DiscoverHeadPinHeader.swift

114 lines
3.4 KiB
Swift
Raw Normal View History

2025-10-09 10:29:35 +00:00
//
// DiscoverHeadPinHeader.swift
// Crush
//
// Created by Leon on 2025/9/9.
//
import JXSegmentedView
class DiscoverHeadPinHeader: UIView {
let segmentedViewHeight = 48
var titleLabel: CLLabel!
var filterButton: EPIconGhostButton!
lazy var segmentedView = JXSegmentedView(frame: CGRect(x: 0, y: 0, width: UIScreen.width, height: CGFloat(segmentedViewHeight)))
// lazy var subSegementedView = JXSegmentedView(frame: CGRect(x: 0, y: 0, width: UIScreen.width, height: CGFloat(56)))
var dataSource = JXSegmentedTitleDataSource()
// var subDataSouce = JXSegmentedTagStyleDataSource()
var filterConditionCount : Int = 0
override init(frame: CGRect) {
super.init(frame: frame)
setupViews()
setupData()
setupEvent()
}
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
private func setupViews() {
// backgroundColor = .random
titleLabel = {
let v = CLLabel()
v.font = .t.ttm
addSubview(v)
v.snp.makeConstraints { make in
make.leading.equalToSuperview().offset(24)
make.top.equalToSuperview().offset(12)
}
return v
}()
filterButton = {
let v = EPIconGhostButton(radius: .none, iconSize: .medium, iconCode: .filterFill)
v.setBackgroundImage(nil, for: .highlighted)
addSubview(v)
v.snp.makeConstraints { make in
//make.size.equalTo(v.bgImageSize())
make.trailing.equalToSuperview().offset(-24)
make.centerY.equalTo(titleLabel)
}
return v
}()
do {
addSubview(segmentedView)
segmentedView.snp.makeConstraints { make in
make.leading.trailing.equalToSuperview()
make.top.equalToSuperview().offset(48)
make.height.equalTo(segmentedViewHeight)
}
}
// do {
// addSubview(subSegementedView)
// subSegementedView.snp.makeConstraints { make in
// make.leading.trailing.equalToSuperview()
// make.height.equalTo(56)
// make.top.equalTo(segmentedView.snp.bottom).offset(0)
// }
// }
titleLabel.text = "Classification"
}
private func setupData() {
dataSource.clNormalStyle()
segmentedView.dataSource = dataSource
segmentedView.clNormalStyle()
// subSegementedView.contentEdgeInsetLeft = 24
// subSegementedView.contentEdgeInsetRight = 24
// subSegementedView.dataSource = subDataSouce
filterButton.titleLabel?.font = .t.tll
filterButton.setTitleColor(.text, for: .normal)
filterButton.touchAreaInsets = UIEdgeInsets(top: 10, left: 10, bottom: 10, right: 10)
filterButton.layer.masksToBounds = false
}
private func setupEvent() {
}
// MARK: Helper
// MARK: Public
func setupFilterCount(_ count: Int){
filterConditionCount = count
if count > 0{
filterButton.optionalIconColor = .text
filterButton.setTitle(" (\(count))", for: .normal)
}else{
filterButton.optionalIconColor = .text
filterButton.setTitle("", for: .normal)
}
filterButton.layoutIfNeeded()
}
}