有人可以给我一个建议吗? 我有带 Split View和 lineChartView 的 swift 3.0 应用程序。 当我加载 detailView 时,我的折线图是正确的。见图 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,德米特里
最佳答案
你可以加载你的图表
func layoutSubviews() {
super.layoutSubviews()
}
希望这对您有所帮助。
关于lineChartView View 的快速刷新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42062388/