// // SBTHorizontalScreenVCtr.swift // SolarBT // // Created by weclouds on 2019/3/13. // Copyright © 2019 weclouds. All rights reserved. // import UIKit class SBTHorizontalScreenVCtr: UIViewController { 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: 50, y: 0 , width: KSCREENHEIGHT - 100, height: KSCREENWIDTH - 50)) 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.yAxisMaxValue = 7000 * 2; chartView.tag = 800000 chartView.isHidden = true chartView.isLandspace = true chartView.draw() return chartView }() lazy var chargeChartView: DVBarChartView = { let chartView = DVBarChartView(frame: CGRect(x: 50, y: 0, width: KSCREENHEIGHT - 100, height: KSCREENWIDTH - 50)) 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 = 800001 chartView.yAxisMaxValue = 2500; chartView.isHidden = true chartView.isLandspace = true chartView.draw() return chartView }() lazy var dischargeChartView: DVBarChartView = { let chartView = DVBarChartView(frame: CGRect(x: 50, y: 0, width: KSCREENHEIGHT - 100, height: KSCREENWIDTH - 50)) chartView.barGap = 17 chartView.barWidth = 30 chartView.yAxisViewWidth = 50 chartView.numberOfYAxisElements = 5 chartView.xAxisTitleArray = self.dayArr chartView.backColor = UIColor.white chartView.axisColor = UIColor(hexString: "#E4E4E4") chartView.tag = 800002 chartView.yAxisMaxValue = 2500; chartView.isHidden = true chartView.isLandspace = true chartView.draw() return chartView }() lazy var toolbar: UIView = { let toolbar = UIView(frame: CGRect(x: 0, y: 0, width: 375, height: 30)) 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()] let appdelegate = UIApplication.shared.delegate as! AppDelegate override func viewDidLoad() { super.viewDidLoad() appdelegate.blockRotation = true 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() } override func viewWillAppear(_ animated: Bool) { // super.viewWillAppear(animated) //该页面显示时强制横屏 let value = UIInterfaceOrientation.landscapeRight.rawValue UIDevice.current.setValue(value, forKey: "orientation") } @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) } } override func viewWillDisappear(_ animated: Bool) { // super.viewWillDisappear(animated) //页面退出时还原强制竖屏状态 appdelegate.blockRotation = false let value = UIInterfaceOrientation.portrait.rawValue UIDevice.current.setValue(value, forKey: "orientation") } //横屏页面是否支持旋转 override var shouldAutorotate: Bool{ return false } //不隐藏状态栏 override var prefersStatusBarHidden: Bool{ return false } } extension SBTHorizontalScreenVCtr{ func fillChartsData(_ weekData : [OneDayData]?) { arr0?.removeAll() arr1?.removeAll() arr2?.removeAll() arr3?.removeAll() arr4?.removeAll() arr5?.removeAll() if let arr = weekData { for i in 0..