Может ли кто-нибудь дать мне совет? У меня есть приложение с быстрым 3.0 с разделенным представлением и lineChartView. Когда я загружаю detailView, моя строкаChart верна. См. Рис. 1. original correct ViewБыстрое обновление линииChartView View
Когда я перехожу к экрану детали в полноэкранный режим, моя линияChartView перемещается и не обновляется. Но я делаю это. Мой код ниже.
Когда я просто нажмите график, то мой lineChartView обновляется и правильно снова.
Я поймал перемещение экрана и попробовал перезагрузить lineChartView, но без результата.
override func viewWillLayoutSubviews() {
super.viewWillLayoutSubviews()
if loadedGraph {
showGraph(reload: false) //here false means reload from internet data source.
}
if UIInterfaceOrientationIsLandscape(UIApplication.shared.statusBarOrientation) {
print("Landscape")
} else {
print("NOT Landscape")
}
}
func showGraph(reload : Bool) {
lineChartView.layer.frame.size.width = graphView.layer.frame.width
var max = maxElement(graph: DataArrayNew)
if !(max > 0) {
max = 1
}
graphView.layer.borderWidth = 2
graphView.layer.borderColor = UIColor(red:85/255.0, green:85/255.0, blue:85/255.0, alpha: 1.0).cgColor
if reload {
_ = NarodMon.sharedInstance.getHistoricalData(interval: horizontalMarker, device: sensorID)
}
DataArrayNew = (NarodMon.sharedInstance.getDataArray() as NSArray) as! [Double]
TimeArrayNew = (NarodMon.sharedInstance.getTimeArray() as NSArray) as! [String]
DataArray = (NarodMon.sharedInstance.getDataArrayOrig() as NSArray) as! [Double]
lineChartView.maximumValue = CGFloat(max)
lineChartView.reloadData()
}
Любые действия, такие как setNeedsDisplay() или reloadInputViews() не помогают.
Но если я коснусь графа, тогда график получил нормальный вид.
Любые идеи, как исправить это, я буду очень благодарен.
Rg, Дмитрий