有人可以给我一个建议吗? 我有分裂视图和lineChartView的swift 3.0应用程序。 当我加载detailView时,我的lineChart是正确的。见图1。 original correct View
当我将详细信息的屏幕移动到全屏时,我的lineChartView将被移动而不会刷新。但我这样做。我的代码如下。
当我点击图表时,我的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,德米特里
答案 0 :(得分:0)
您可以在
中加载图表 func layoutSubviews() {
super.layoutSubviews()
}
希望得到这个帮助。