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() {
 | ||
|     }
 | ||
| }
 |