f2cf74c7
yangbin
1.0.20(4)
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
|
//
// MettCell.swift
// Twear
//
// Created by yangbin on 2022/3/1.
//
import UIKit
import Charts
class MettCell: UICollectionViewCell {
@IBOutlet weak var titleLabel: UILabel!
@IBOutlet weak var valueLabel: UILabel!
@IBOutlet weak var dateLabel: UILabel!
@IBOutlet weak var noDataImageView: UIImageView!
@IBOutlet weak var barChartView: BarChartView!
var mettArray: [MettModel] = [] {
didSet {
if mettArray.count == 0 {
valueLabel.toUnitMode(text: "--", unit: " MET-min", font: BoldFont(25), unitFont: RegularFont(11), unitColor: UIColor.rgbColorFromHex(0x808080))
dateLabel.text = LocString("暂无数据")
noDataImageView.isHidden = false
barChartView.isHidden = true
} else {
let mett = mettArray.last!
valueLabel.toUnitMode(text: "\(mett.value)", unit: " MET-min", font: BoldFont(25), unitFont: RegularFont(11), unitColor: UIColor.rgbColorFromHex(0x808080))
dateLabel.text = mett.date!.toString(.custom("yyyy/MM/dd"))
updateChartView(mettArray)
noDataImageView.isHidden = true
barChartView.isHidden = false
}
}
}
private func updateChartView(_ mettArray: [MettModel]) {
var maxValue = mettArray.max(\.value)?.value ?? 1
if maxValue == 0 {
maxValue = 1
}
setupChartView(maxValue: maxValue)
var dataEntries = [BarChartDataEntry]()
var mett = MettModel(value: 0, date: Date().dateAtStartOf(.day))
for i in 0..<7 {
var value = 0
if i < mettArray.count {
value = mettArray[i].value
if mettArray[i].value > 0 {
mett = mettArray[i]
valueLabel.toUnitMode(text: "\(mett.value)", unit: " MET-min", font: BoldFont(25), unitFont: RegularFont(11), unitColor: UIColor.rgbColorFromHex(0x808080))
dateLabel.text = mett.date!.toString(.custom("yyyy/MM/dd"))
}
}
dataEntries.append(BarChartDataEntry(x: Double(i), yValues: [Double(value), Double(maxValue-value)]))
}
let dataSet = BarChartDataSet(entries: dataEntries)
dataSet.colors = [UIColor.rgbColorFromHex(0x1D8FF7), UIColor.rgbColorFromHex(0xF2F2F2)]
dataSet.drawValuesEnabled = false
dataSet.highlightEnabled = false
let chartData = BarChartData(dataSets: [dataSet])
chartData.barWidth = 0.45
barChartView.data = chartData
}
func setupChartView(maxValue: Int) {
barChartView.chartDescription?.enabled = false
barChartView.legend.enabled = false
barChartView.setScaleEnabled(false)
barChartView.rightAxis.enabled = false
let leftAxis = barChartView.leftAxis
leftAxis.axisMinimum = 0 //设置左侧Y轴最小值
leftAxis.axisMaximum = Double(maxValue)
leftAxis.enabled = false
let xAxis = barChartView.xAxis
xAxis.axisMinimum = -0.45
xAxis.axisMaximum = 6.45
xAxis.granularity = 1 //间隔
xAxis.enabled = false
}
override func awakeFromNib() {
super.awakeFromNib()
titleLabel.text = LocString("梅脱")
// lineChartView.isUserInteractionEnabled = false
// Initialization code
}
}
|