90 lines
2.1 KiB
Swift
90 lines
2.1 KiB
Swift
//
|
||
// HeartBeatView.swift
|
||
// Crush
|
||
//
|
||
// Created by Leon on 2025/8/14.
|
||
//
|
||
|
||
import UIKit
|
||
|
||
enum HeartBeatSize {
|
||
case small
|
||
case medium
|
||
}
|
||
|
||
/// 小爱心❤️ + 37.8温度
|
||
class HeartBeatView: UIView{
|
||
var icon: UIImageView!
|
||
var value: UILabel!
|
||
|
||
var viewSize: HeartBeatSize = .small
|
||
|
||
var content: String = "-"{
|
||
didSet{
|
||
if content.count > 0{
|
||
value.text = "\(content)℃"
|
||
}else{
|
||
value.text = "-"
|
||
}
|
||
}
|
||
}
|
||
|
||
init(viewSize: HeartBeatSize) {
|
||
self.viewSize = viewSize
|
||
super.init(frame: .zero)
|
||
setupViews()
|
||
setupData()
|
||
setupEvent()
|
||
}
|
||
|
||
required init?(coder: NSCoder) {
|
||
fatalError("init(coder:) has not been implemented")
|
||
}
|
||
|
||
private func setupViews() {
|
||
icon = {
|
||
let v = UIImageView()
|
||
v.image = UIImage(named: "heartbeat")
|
||
addSubview(v)
|
||
v.snp.makeConstraints { make in
|
||
make.leading.equalToSuperview()
|
||
make.centerY.equalToSuperview()
|
||
}
|
||
return v
|
||
}()
|
||
|
||
value = {
|
||
let v = UILabel()
|
||
v.textColor = .text
|
||
v.setContentCompressionResistancePriority(UILayoutPriority(756), for: .horizontal)
|
||
addSubview(v)
|
||
v.snp.makeConstraints { make in
|
||
make.leading.equalTo(icon.snp.trailing).offset(4)
|
||
make.top.equalToSuperview()
|
||
make.bottom.equalToSuperview()
|
||
make.trailing.equalToSuperview()
|
||
}
|
||
return v
|
||
}()
|
||
value.text = "-"
|
||
}
|
||
|
||
private func setupData() {
|
||
switch viewSize {
|
||
case .small:
|
||
icon.snp.makeConstraints { make in
|
||
make.size.equalTo(CGSize(width: 12, height: 12))
|
||
}
|
||
value.font = .t.tls
|
||
case .medium:
|
||
icon.snp.makeConstraints { make in
|
||
make.size.equalTo(CGSize(width: 20, height: 20))
|
||
}
|
||
value.font = .t.tlm
|
||
}
|
||
}
|
||
|
||
private func setupEvent() {
|
||
}
|
||
}
|