实现数据 Tab 并修复汇总数据解析

This commit is contained in:
2026-07-06 16:32:14 +08:00
parent be18ecd841
commit 9464e32a0a
32 changed files with 1769 additions and 10 deletions

View File

@ -0,0 +1,43 @@
//
// StatisticsPeriodButton.swift
// suixinkan
//
import SnapKit
import UIKit
/// pill Android `PeriodButton`
final class StatisticsPeriodButton: UIButton {
var periodTitle: String = "" {
didSet { setTitle(periodTitle, for: .normal) }
}
override var isSelected: Bool {
didSet { updateAppearance() }
}
override init(frame: CGRect) {
super.init(frame: frame)
setupUI()
}
@available(*, unavailable)
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
private func setupUI() {
titleLabel?.font = .systemFont(ofSize: 14, weight: .medium)
layer.cornerRadius = 18
clipsToBounds = true
contentEdgeInsets = UIEdgeInsets(top: 6, left: 20, bottom: 6, right: 20)
updateAppearance()
}
private func updateAppearance() {
backgroundColor = isSelected ? UIColor(hex: 0x3B82F6) : UIColor(hex: 0xF3F4F6)
setTitleColor(isSelected ? .white : UIColor(hex: 0x4B5563), for: .normal)
titleLabel?.font = .systemFont(ofSize: 14, weight: isSelected ? .semibold : .medium)
}
}