// // HelathItemCell.swift // Lookfit // // Created by Sheldon on 2021/9/21. // Copyright © 2021 Sheldon. All rights reserved. // import UIKit class HelathItemCell: CollectionViewCell { lazy var leftTitleLabel: UILabel = { let label = UILabel() label.textColor = kHexColor(0x2A2A2A) label.font = SystemMediumFont(18) return label }() lazy var blockView: HealthBlockView = { let view = HealthBlockView() return view }() override func setUpUI() { containerView.addSubview(leftTitleLabel) containerView.addSubview(blockView) // containerView.backgroundColor = kRandomColor() } override func layoutUI() { leftTitleLabel.snp.makeConstraints { (make) in make.top.equalTo(kScaleWidth(20)) make.left.equalTo(blockView.snp.left).offset(12) } blockView.snp.makeConstraints { (make) in make.top.equalTo(leftTitleLabel.snp.bottom).offset(5) make.bottom.equalToSuperview() make.left.equalToSuperview() make.width.equalToSuperview() } } override func bind(model: ViewModel) { super.bind(model: model) guard let viewModel = model as? HealthCellViewModel else { return } leftTitleLabel.text = viewModel.type.titleLocalized blockView.sleepCircleView.isHidden = true switch viewModel.type { case .sleep: blockView.sleepCircleView.isHidden = false blockView.bgImgBtn.setBackgroundImage(R.image.sleep_bg(), for: .normal) blockView.centerLabel.textColor = kHexColor(0x6D9CFF) blockView.unitLabel.textColor = kHexColor(0x6D9CFF) blockView.centerLabel.text = "0" blockView.unitLabel.text = MultiLanguageKey.hour.localized viewModel.target .bind(to: blockView.titleLabel.rx.text) .disposed(by: cellDisposeBag) case .heartRate: blockView.bgImgBtn.setBackgroundImage(R.image.heartRate_bg(), for: .normal) blockView.titleLabel.text = MultiLanguageKey.realHeartRate.localized blockView.centerLabel.textColor = kHexColor(0xFF6D6D) blockView.unitLabel.textColor = kHexColor(0xFF6D6D) blockView.unitLabel.text = "bpm" blockView.centerLabel.text = "--" case .temperature: blockView.bgImgBtn.setBackgroundImage(R.image.temperature_bg(), for: .normal) blockView.centerLabel.textColor = kHexColor(0x27ABFF) blockView.unitLabel.textColor = kHexColor(0x27ABFF) blockView.unitLabel.text = MultiLanguageKey.centigrade.localized blockView.titleLabel.text = MultiLanguageKey.realTimeTemperature.localized case .bloodPressure: blockView.bgImgBtn.setBackgroundImage(R.image.bloodPressure_bg(), for: .normal) blockView.centerLabel.textColor = kHexColor(0x48C0CB) blockView.unitLabel.textColor = kHexColor(0x48C0CB) blockView.unitLabel.text = MultiLanguageKey.bloodPressureUnit.localized blockView.titleLabel.text = MultiLanguageKey.realTimeBloodPressure.localized case .bloodOxygen: blockView.bgImgBtn.setBackgroundImage(R.image.bloodOxygen_bg(), for: .normal) blockView.centerLabel.textColor = kHexColor(0xF74D4E) blockView.unitLabel.textColor = kHexColor(0xF74D4E) blockView.unitLabel.text = MultiLanguageKey.bloodOxygenUnit.localized blockView.titleLabel.text = MultiLanguageKey.realTimeBloodOxygen.localized default: break } viewModel.value .bind(to: blockView.centerLabel.rx.text) .disposed(by: cellDisposeBag) viewModel.progress .subscribe(onNext: { [weak self] (progress) in self?.blockView.sleepCircleView.updateProcess(process: Float(progress)) }) .disposed(by: cellDisposeBag) } }