// // BloodOxygenCell.swift // Twear // // Created by yangbin on 2021/11/16. // import UIKit import Charts class BloodOxygenCell: UICollectionViewCell { @IBOutlet weak var boValueLabel: UILabel! @IBOutlet weak var dateLabel: UILabel! @IBOutlet weak var noDataImageView: UIImageView! @IBOutlet weak var lineChartView: LineChartView! var boHistory: [BloodOxygenModel] = [] { didSet { let count = boHistory.count if count == 0 { boValueLabel.text = "--" dateLabel.text = LocString("暂无数据") noDataImageView.isHidden = false lineChartView.isHidden = true } else { boValueLabel.text = "\(boHistory[count-1].value)" dateLabel.text = boHistory[count-1].date!.toString(.custom("yyyy/MM/dd")) updateChartView(boHistory) noDataImageView.isHidden = true lineChartView.isHidden = false } } } private func updateChartView(_ boHistory: [BloodOxygenModel]) { setupChartView() var dataEntries = [ChartDataEntry]() for (i, bo) in boHistory.enumerated() { dataEntries.append(ChartDataEntry(x: Double(i), y: Double(bo.value))) } if dataEntries.count == 1 { dataEntries.append(ChartDataEntry(x: dataEntries[0].x+0.5, y: dataEntries[0].y)) } let dataSet = LineChartDataSet(entries: dataEntries, label: nil) dataSet.drawCirclesEnabled = false dataSet.drawValuesEnabled = false dataSet.mode = .horizontalBezier dataSet.setDrawHighlightIndicators(false) dataSet.setColor(UIColor.rgbColorFromHex(0xFF8F00)) dataSet.lineWidth = 1 dataSet.drawFilledEnabled = true let gradientColors = [UIColor.rgbColorFromHex(0xFF9C1C).cgColor, UIColor.rgbColorFromHex(0xFFFFFF).cgColor] let gradient = CGGradient(colorsSpace: nil, colors: gradientColors as CFArray, locations: [1.0, 0.0]) dataSet.fillAlpha = 1.0 dataSet.fill = Fill(linearGradient: gradient!, angle: 90) lineChartView.data = LineChartData(dataSets: [dataSet]) } func setupChartView() { lineChartView.chartDescription?.enabled = false lineChartView.legend.enabled = false lineChartView.setScaleEnabled(false) lineChartView.rightAxis.enabled = false let leftAxis = lineChartView.leftAxis leftAxis.axisMinimum = 50 //设置左侧Y轴最小值 leftAxis.axisMaximum = 100 leftAxis.granularity = 10 leftAxis.enabled = false let xAxis = lineChartView.xAxis xAxis.axisMinimum = 0 xAxis.axisMaximum = 30 xAxis.granularity = 1 //间隔 xAxis.enabled = false } override func awakeFromNib() { super.awakeFromNib() // Initialization code } }