Blame view

HDFwear/Home/Cell/SleepCell.swift 3.22 KB
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
  //
  //  SleepCell.swift
  //  Twear
  //
  //  Created by yangbin on 2021/11/16.
  //
  
  import UIKit
  import Charts
  
  class SleepCell: UICollectionViewCell {
      @IBOutlet weak var lengthLabel: UILabel!
      @IBOutlet weak var dateLabel: UILabel!
      @IBOutlet weak var noDataImageView: UIImageView!
      @IBOutlet weak var barChartView: BarChartView!
      
      @IBOutlet weak var titleLabel: UILabel!
      var sleep: SleepSummary = SleepSummary() {
          didSet {
              if sleep.startDate == nil {
                  lengthLabel.text = " "
                  dateLabel.text = LocString("暂无数据")
                  noDataImageView.isHidden = false
                  barChartView.isHidden = true
              } else {
                  lengthLabel.toTimeType1(length: sleep.sleepLength, BoldFont(25), LightFont(11))
                  dateLabel.text = sleep.endDate!.toString(.custom("yyyy/MM/dd"))
                  updateChartView(sleep)
                  noDataImageView.isHidden = true
                  barChartView.isHidden = false
              }
          }
      }
      
      private func updateChartView(_ sleep: SleepSummary) {
          setupChartView()
          
          var deepEntries = [BarChartDataEntry]()
          for i in 0..<sleep.deep_pct {
              deepEntries.append(BarChartDataEntry(x: Double(i), y: 1))
          }
          var lightEntries = [BarChartDataEntry]()
          for i in 0..<sleep.light_pct {
              lightEntries.append(BarChartDataEntry(x: Double(i+sleep.deep_pct+3), y: 1))
          }
          var awakeEntries = [BarChartDataEntry]()
          for i in 0..<sleep.awake_pct {
              awakeEntries.append(BarChartDataEntry(x: Double(i+sleep.deep_pct+sleep.light_pct+6), y: 1))
          }
          
          let deepSet = BarChartDataSet(entries: deepEntries)
          deepSet.colors = [UIColor.rgbColorFromHex(0x843AFF)]
          deepSet.drawValuesEnabled = false
          deepSet.highlightEnabled = false
          let awakeSet = BarChartDataSet(entries: awakeEntries)
          awakeSet.colors = [UIColor.rgbColorFromHex(0xFF3AEA)]
          awakeSet.drawValuesEnabled = false
          awakeSet.highlightEnabled = false
          let lightSet = BarChartDataSet(entries: lightEntries)
          lightSet.colors = [UIColor.rgbColorFromHex(0xBC3AFF)]
          lightSet.drawValuesEnabled = false
          lightSet.highlightEnabled = false
          
          let chartData = BarChartData(dataSets: [awakeSet, lightSet, deepSet])
          chartData.barWidth = 1.5
          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 = 1
          leftAxis.enabled = false
          
          let xAxis = barChartView.xAxis
          xAxis.axisMinimum = 0
          xAxis.axisMaximum = 105
          xAxis.granularity = 1 //间隔
          xAxis.enabled = false
      }
      
      
      override func awakeFromNib() {
          super.awakeFromNib()
          titleLabel.text = LocString("睡眠")
  //        lineChartView.isUserInteractionEnabled = false
          // Initialization code
      }
  
  }