SBTSHistoryHeaderView.swift 7.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222
  1. //
  2. // SBTSHistoryHeaderView.swift
  3. // SolarBT
  4. //
  5. // Created by weclouds on 2019/2/26.
  6. // Copyright © 2019 weclouds. All rights reserved.
  7. //
  8. import UIKit
  9. class HeaderItem: UIView {
  10. var mTitle : String?{
  11. didSet{
  12. titleLabel.text = mTitle
  13. }
  14. }
  15. var mValue: String?{
  16. didSet{
  17. valueLabel.text = mValue;
  18. }
  19. }
  20. lazy var titleLabel: UILabel = {
  21. let titleLabel = UILabel()
  22. titleLabel.textColor = UIColor(hexString: "#BDBDBD")
  23. titleLabel.font = UIFont(name: PingFangSC_Medium, size: 11)
  24. return titleLabel
  25. }()
  26. lazy var valueLabel: UILabel = {
  27. let valueLabel = UILabel()
  28. valueLabel.textColor = UIColor(hexString: "#222222")
  29. valueLabel.font = UIFont(name: PingFangSC_Regular, size: 17)
  30. return valueLabel
  31. }()
  32. override init(frame: CGRect) {
  33. super.init(frame: frame)
  34. createUI()
  35. }
  36. required init?(coder aDecoder: NSCoder) {
  37. fatalError("init(coder:) has not been implemented")
  38. }
  39. func createUI() {
  40. addSubview(titleLabel)
  41. addSubview(valueLabel)
  42. titleLabel.snp.makeConstraints { (make) in
  43. make.top.right.left.equalToSuperview()
  44. make.height.equalTo(15)
  45. }
  46. valueLabel.snp.makeConstraints { (make) in
  47. make.left.bottom.right.equalToSuperview()
  48. make.height.equalTo(25)
  49. }
  50. }
  51. }
  52. class SBTSHistoryHeaderView: UIView {
  53. var itemValues : [String]? = [String]()
  54. var mStatistics : StatisticsData?{
  55. didSet{
  56. //发电量
  57. let generateInt = Int(self.mStatistics!.totalGenerationCapacity!)
  58. //格式化
  59. let format = NumberFormatter()
  60. //设置umberStyle
  61. format.numberStyle = .decimal
  62. //转换后的string
  63. let generationCapacity = format.string(from: generateInt! as NSNumber)
  64. generateElectricityLabel.text = generationCapacity
  65. //放电量
  66. let discharge = Int((self.mStatistics?.totalDischargeCapacity!)!)
  67. let dischargeCapacity = format.string(from: discharge! as NSNumber)
  68. itemValues?.append(self.mStatistics!.totalDischargeCapacity!)
  69. itemValues?.append(self.mStatistics!.runTime!)
  70. itemValues?.append(self.mStatistics!.overTimes!)
  71. itemValues?.append(self.mStatistics!.fullTimes!)
  72. itemValues?.append(self.mStatistics!.chargingAmpereHour!)
  73. itemValues?.append(self.mStatistics!.dischargeAmpereHour!)
  74. }
  75. }
  76. //发电量
  77. lazy var generateElectricityLabel: UILabel = {
  78. let generateElectricityLabel = UILabel()
  79. // generateElectricityLabel.text = "425,837"
  80. generateElectricityLabel.textColor = UIColor(hexString: "#222222")
  81. generateElectricityLabel.font = UIFont(name: PingFangSC_Regular, size: 45)
  82. return generateElectricityLabel
  83. }()
  84. func fillViewData(_ mStatistics : StatisticsData) {
  85. //发电量
  86. let generateInt = Double(mStatistics.totalGenerationCapacity!)! * 0.001
  87. //格式化
  88. let format = NumberFormatter()
  89. //设置umberStyle
  90. format.numberStyle = .decimal
  91. //转换后的string
  92. let generationCapacity = format.string(from: generateInt as NSNumber)
  93. generateElectricityLabel.text = generationCapacity
  94. //放电量
  95. let discharge = Double(mStatistics.totalDischargeCapacity!)! * 0.001
  96. let dischargeCapacity = format.string(from: discharge as NSNumber)
  97. itemValues?.append(mStatistics.runTime!)
  98. itemValues?.append(mStatistics.fullTimes!)
  99. itemValues?.append(mStatistics.overTimes!)
  100. itemValues?.append(generationCapacity!)
  101. let chargingAH = Int(mStatistics.chargingAmpereHour!)
  102. let chargingAmpereHour = format.string(from: chargingAH! as NSNumber)
  103. // itemValues?.append(chargingAmpereHour!)
  104. itemValues?.append(mStatistics.chargingAmpereHour!)
  105. itemValues?.append(dischargeCapacity!)
  106. let dischargeAH = Int(mStatistics.dischargeAmpereHour!)
  107. let dischargeAmpereHour = format.string(from: dischargeAH! as NSNumber)
  108. // itemValues?.append(dischargeAmpereHour!)
  109. itemValues?.append(mStatistics.dischargeAmpereHour!)
  110. //赋值
  111. for i in 0..<7 {
  112. let item = viewWithTag(93485 + i) as! HeaderItem
  113. item.mValue = itemValues![i]
  114. }
  115. }
  116. override init(frame: CGRect) {
  117. super.init(frame: frame)
  118. createUI()
  119. }
  120. required init?(coder aDecoder: NSCoder) {
  121. fatalError("init(coder:) has not been implemented")
  122. }
  123. }
  124. extension SBTSHistoryHeaderView{
  125. func createUI() {
  126. //头部分割线
  127. let topLine = UIView()
  128. addSubview(topLine)
  129. topLine.backgroundColor = UIColor(hexString: "E9E9E9")
  130. topLine.snp.makeConstraints { (make) in
  131. make.top.equalToSuperview()
  132. make.left.equalToSuperview().offset(30)
  133. make.right.equalToSuperview().offset(-30)
  134. make.height.equalTo(1)
  135. }
  136. // let topLabel = UILabel()
  137. // topLabel.text = "发电量(Wh)"
  138. // topLabel.textColor = UIColor(hexString: "#BDBDBD")
  139. // topLabel.font = UIFont(name: PingFangSC_Medium, size: 11)
  140. // addSubview(topLabel)
  141. // topLabel.snp.makeConstraints { (make) in
  142. // make.left.equalToSuperview().offset(25)
  143. // make.top.equalTo(topLine.snp.bottom).offset(19)
  144. // }
  145. // addSubview(generateElectricityLabel)
  146. // generateElectricityLabel.snp.makeConstraints { (make) in
  147. // make.left.equalTo(topLabel.snp.left)
  148. // make.top.equalTo(topLabel.snp.bottom)
  149. // }
  150. let titles = ["Running_days_(days)".da_localizedStr(),"Number_of_full_charge_times".da_localizedStr(),"Number_of_overdicharge_times".da_localizedStr(),"Power_generation(kWh)".da_localizedStr(),"Charge_amp_hours_(Ah)".da_localizedStr(),"Discharge_amount(kWh)".da_localizedStr(),"Discharge_amp_hours_(Ah)".da_localizedStr()]
  151. //添加不同项
  152. let itemWidth = (KSCREENWIDTH - 25 * 2 - 10 * 2 ) / 3
  153. let itemHeight = 15 + 3 + 25
  154. for i in 0..<3 {
  155. let row = i / 3 //行
  156. let col = i % 3 // 列
  157. let x = 25 + CGFloat(col) * (itemWidth + 10)
  158. let y = 20 + row * (itemHeight + 20)
  159. let item = HeaderItem(frame: CGRect(x: x, y: CGFloat(y), width: itemWidth, height: CGFloat(itemHeight)))
  160. item.tag = 93485 + i
  161. item.mTitle = titles[i]
  162. // item.mValue = itemValues![i]
  163. // item.backgroundColor = UIColor.random
  164. addSubview(item)
  165. }
  166. //添加不同项
  167. /*
  168. 0 1
  169. */
  170. let itemWidth2 = (KSCREENWIDTH - 25 * 2 - 10) / 2
  171. for i in 3..<7 {
  172. let row = (i - 3) / 2 //行
  173. let col = (i - 3 ) % 2 // 列
  174. let x = 25 + CGFloat(col) * (itemWidth2 + 10)
  175. let y = itemHeight + 20 + 20 + row * (itemHeight + 20)
  176. let item = HeaderItem(frame: CGRect(x: x, y: CGFloat(y), width: itemWidth2, height: CGFloat(itemHeight)))
  177. // item.backgroundColor = UIColor.random
  178. item.tag = 93485 + i
  179. item.mTitle = titles[i]
  180. // item.mValue = itemValues![i]
  181. addSubview(item)
  182. }
  183. }
  184. }