// // SBTScreenShootView.swift // SolarBT // // Created by weclouds on 2019/5/15. // Copyright © 2019 weclouds. All rights reserved. // import UIKit class SBTScreenShootView: UIView { var arr0 : [Float]? = [Float]() var arr1 : [Float]? = [Float]() var arr2 : [Float]? = [Float]() var arr3 : [Float]? = [Float]() var arr4 : [Float]? = [Float]() var arr5 : [Float]? = [Float]() var weekData : [OneDayData]? { didSet{ } } var dayArr :[String]? lazy var batteryChartView: DVBarChartView = { let chartView = DVBarChartView(frame: CGRect(x: 0, y: 50 , width: KSCREENHEIGHT - 100, height: KSCREENWIDTH - 120)) chartView.centerX = self.frame.width / 2 chartView.barGap = 17 chartView.barWidth = 33 chartView.yAxisViewWidth = 50 chartView.numberOfYAxisElements = 5 chartView.xAxisTitleArray = self.dayArr chartView.backColor = UIColor.white chartView.axisColor = UIColor(hexString: "#E4E4E4") chartView.xValues = arr0 as? NSMutableArray chartView.xValues2 = arr1 as? NSMutableArray chartView.tag = 700000 chartView.yAxisMaxValue = 7000 * 2; chartView.isHidden = true chartView.isLandspace = true chartView.isShotImage = true chartView.draw() return chartView }() lazy var chargeChartView: DVBarChartView = { let chartView = DVBarChartView(frame: CGRect(x: 0, y: 50, width: KSCREENHEIGHT - 100, height: KSCREENWIDTH - 120)) chartView.centerX = self.frame.width / 2 chartView.barGap = 17 chartView.barWidth = 33 chartView.yAxisViewWidth = 50 chartView.numberOfYAxisElements = 5 chartView.xAxisTitleArray = self.dayArr chartView.backColor = UIColor.white chartView.axisColor = UIColor(hexString: "#E4E4E4") chartView.tag = 700001 chartView.yAxisMaxValue = 2500; chartView.isHidden = true chartView.isLandspace = true chartView.isShotImage = true chartView.draw() return chartView }() lazy var dischargeChartView: DVBarChartView = { let chartView = DVBarChartView(frame: CGRect(x: 0, y: 70, width: KSCREENHEIGHT - 100, height: KSCREENWIDTH - 120)) chartView.centerX = self.frame.width / 2 chartView.barGap = 17 chartView.barWidth = 33 chartView.yAxisViewWidth = 50 chartView.numberOfYAxisElements = 5 chartView.xAxisTitleArray = self.dayArr chartView.backColor = UIColor.white chartView.axisColor = UIColor(hexString: "#E4E4E4") chartView.tag = 700002 chartView.yAxisMaxValue = 2500; chartView.isHidden = true chartView.isLandspace = true chartView.isShotImage = true chartView.draw() return chartView }() lazy var toolbar: UIView = { let toolbar = UIView(frame: CGRect(x: 0 , y: self.frame.size.height - 50, width: 375, height: 30)) toolbar.centerX = self.frame.width / 2 toolbar.backgroundColor = UIColor.white toolbar.layer.masksToBounds = true toolbar.layer.cornerRadius = 15 toolbar.layer.borderWidth = 1 toolbar.layer.borderColor = UIColor(hexString: "#DEDEDE")?.cgColor return toolbar }() let btnTitles = ["Battery".da_localizedStr(),"Charge".da_localizedStr(),"Discharge".da_localizedStr()] override init(frame: CGRect) { super.init(frame: frame) self.backgroundColor = UIColor.white dayArr = [String]() let first = nowTime("yyyy-M-d") let second = getLastDay(first) let third = getLastDay(second) let foreth = getLastDay(third) let fifth = getLastDay(foreth) let sixth = getLastDay(fifth) let seventh = getLastDay(sixth) let eighth = getLastDay(seventh) dayArr?.append("Today".da_localizedStr()) dayArr?.append("Yesterday".da_localizedStr()) dayArr?.append(third.subString(start: 5)) dayArr?.append(foreth.subString(start: 5)) dayArr?.append(fifth.subString(start: 5)) dayArr?.append(sixth.subString(start: 5)) dayArr?.append(seventh.subString(start: 5)) dayArr?.append(eighth.subString(start: 5)) createUI() notificationChangeToolButton() } required init?(coder aDecoder: NSCoder) { fatalError("init(coder:) has not been implemented") } } extension SBTScreenShootView{ @objc func notificationChangeToolButton() { for i in 0..<3 { let btn : UIButton = toolbar.viewWithTag((i + 8000)) as! UIButton btn.isSelected = false } let selectedIndex = AppShare.toolbarSelectedIndex let button : UIButton = toolbar.viewWithTag((selectedIndex! + 8000)) as! UIButton button.isSelected = true if selectedIndex == 0 { show(batteryChartView) }else if selectedIndex == 1 { show(chargeChartView) }else if selectedIndex == 2 { show(dischargeChartView) } } @objc func btnClick(_ button: UIButton) { for i in 0..<3 { let btn : UIButton = toolbar.viewWithTag((i + 8000)) as! UIButton btn.isSelected = false } button.isSelected = true let index = button.tag - 8000 if index == 0 { show(batteryChartView) }else if index == 1 { show(chargeChartView) }else if index == 2 { show(dischargeChartView) } } func show(_ chartView:DVBarChartView) { batteryChartView.isHidden = true chargeChartView.isHidden = true dischargeChartView.isHidden = true chartView.isHidden = false } func createUI() { let buttonW : CGFloat = 375 / 3 let buttonH : CGFloat = 30 for i in 0..<3 { let btn = UIButton(type: .custom) btn.setTitle(btnTitles[i], for: .normal) btn.setTitleColor(UIColor(hexString: "#989898"), for: .normal) btn.setTitleColor(UIColor(hexString: "#FFFFFF"), for: .selected) btn.titleLabel?.font = UIFont(name: PingFangSC_Medium, size: 11) btn.setBackgroundImage(UIImage(named: "toorbar_normal"), for: .selected) btn.setBackgroundImage(UIImage(named: "toorbar_selected"), for: .selected) btn.frame = CGRect(x: CGFloat(i) * buttonW, y: 0, width: buttonW, height: CGFloat(buttonH)) btn.tag = 8000 + i btn.layer.masksToBounds = true btn.layer.cornerRadius = 15 btn.addTarget(self, action: #selector(btnClick), for: .touchUpInside) if i == 0 { btn.isSelected = true // 默认选择第一个 show(batteryChartView) } toolbar.addSubview(btn) } //添加chartView self.addSubview(batteryChartView) self.addSubview(chargeChartView) self.addSubview(dischargeChartView) self.addSubview(toolbar) } } extension SBTScreenShootView{ func fillChartsData(_ weekData : [OneDayData]?) { arr0?.removeAll() arr1?.removeAll() arr2?.removeAll() arr3?.removeAll() arr4?.removeAll() arr5?.removeAll() if let arr = weekData { for i in 0..