Blame view

HDFwear/Home/Cell/SleepCell.swift 3.27 KB
f2cf74c7   yangbin   1.0.20(4)
1
2
3
4
5
6
7
8
9
10
11
12
13
  //
  //  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!
e1017215   daifengyi   feat:home page UI
14
      @IBOutlet weak var noDataLabel: UILabel!
f2cf74c7   yangbin   1.0.20(4)
15
16
17
18
19
20
21
22
      @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 = " "
e1017215   daifengyi   feat:home page UI
23
24
                  dateLabel.text = ""
                  noDataLabel.isHidden = false
f2cf74c7   yangbin   1.0.20(4)
25
26
27
                  barChartView.isHidden = true
              } else {
                  lengthLabel.toTimeType1(length: sleep.sleepLength, BoldFont(25), LightFont(11))
e1017215   daifengyi   feat:home page UI
28
                  dateLabel.text = sleep.endDate!.toString(.custom("MM/dd"))
f2cf74c7   yangbin   1.0.20(4)
29
                  updateChartView(sleep)
e1017215   daifengyi   feat:home page UI
30
                  noDataLabel.isHidden = true
f2cf74c7   yangbin   1.0.20(4)
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
                  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("睡眠")
e1017215   daifengyi   feat:home page UI
92
          noDataImageView.isHidden = true
f2cf74c7   yangbin   1.0.20(4)
93
94
95
96
97
  //        lineChartView.isUserInteractionEnabled = false
          // Initialization code
      }
  
  }