Blame view

HDFwear/Home/Cell/TrainCell.swift 2.9 KB
f2cf74c7   yangbin   1.0.20(4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
  //
  //  TrainCell.swift
  //  Twear
  //
  //  Created by yangbin on 2021/11/16.
  //
  
  import UIKit
  import Charts
  import SwiftDate
  
  class TrainCell: UICollectionViewCell {
      
      @IBOutlet weak var lengthLabel: UILabel!
      @IBOutlet weak var dateLabel: UILabel!
e1017215   daifengyi   feat:home page UI
16
      @IBOutlet weak var noDataLabel: UILabel!
f2cf74c7   yangbin   1.0.20(4)
17
18
19
      @IBOutlet weak var noDataImageView: UIImageView!
      @IBOutlet weak var barChartView: BarChartView!
      
f2cf74c7   yangbin   1.0.20(4)
20
21
22
23
24
      @IBOutlet weak var titleLabel: UILabel!
      var trainHistory: [TrainModel] = [] {
          didSet {
              let count = trainHistory.count
              if count == 0 {
e1017215   daifengyi   feat:home page UI
25
26
27
                  lengthLabel.text = ""
                  dateLabel.text = ""
                  noDataLabel.isHidden = false
f2cf74c7   yangbin   1.0.20(4)
28
29
                  barChartView.isHidden = true
              } else {
e1017215   daifengyi   feat:home page UI
30
31
                  lengthLabel.text = "\(trainHistory[count-1].length/60)分钟"
                  dateLabel.text = trainHistory[count-1].date!.toString(.custom("MM/dd"))
f2cf74c7   yangbin   1.0.20(4)
32
                  updateChartView(trainHistory)
e1017215   daifengyi   feat:home page UI
33
                  noDataLabel.isHidden = true
f2cf74c7   yangbin   1.0.20(4)
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
                  barChartView.isHidden = false
              }
          }
      }
      private func updateChartView(_ trainHistory: [TrainModel]) {
          setupChartView()
          var lengthArray = [Int](repeating: 0, count: 12)
          var dataEntries = [BarChartDataEntry]()
          for train in trainHistory {
              for i in 0..<train.length/60 {
                  let date = train.date! + i.minutes
                  if date.isInside(date: train.date!, granularity: .day) {
                      lengthArray[date.hour/2] += 1
                  } else {
                      break
                  }
              }
          }
          
          for i in 0..<12 {
              let length = lengthArray[i]
              dataEntries.append(BarChartDataEntry(x: Double(i), yValues: [Double(length), Double(120-length)]))
          }
  
          let dateSet = BarChartDataSet(entries: dataEntries)
          dateSet.colors = [UIColor.rgbColorFromHex(0x03FFF0), UIColor.rgbColorFromHex(0xF2F2F2)]
          dateSet.drawValuesEnabled = false
          dateSet.highlightEnabled = false
  
          let chartData = BarChartData(dataSets: [dateSet])
          chartData.barWidth = 0.4
  
          barChartView.data = chartData
      }
      
      func setupChartView() {
          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 = 120
          leftAxis.enabled = false
          
          let xAxis = barChartView.xAxis
          xAxis.axisMinimum = -0.5
          xAxis.axisMaximum = 11.5
          xAxis.enabled = false
      }
      
      override func awakeFromNib() {
          super.awakeFromNib()
          titleLabel.text = LocString("训练")
e1017215   daifengyi   feat:home page UI
89
          noDataImageView.isHidden = true
f2cf74c7   yangbin   1.0.20(4)
90
91
92
93
          // Initialization code
      }
  
  }