【发布时间】:2017-01-06 17:46:51
【问题描述】:
我正在使用图表框架“图表”,但它没有重新加载包含新数据的图表的功能。它只能在加载 viewController 时显示一次图表。但我想从表格中选择重新加载视图/图表。 (该表在其他视图控制器中)
在我的例子中,我有一个 ViewController,里面有一个视图 和数据在两个数组中:x 和 y
func setChartData(x: [Double], y: [Double])
我试图调用该函数,但它不显示它。 如果从 viewWillAppear() 调用该函数 图表仅显示,如果我切换到另一个视图控制器并切换回来
我该如何解决这个问题
函数中的self.view!.setNeedsDisplay() 不起作用。
我的视图控制器:
override func viewWillAppear(animated: Bool) {
setChartData(resultID_statistics, y: resultWeight_statistics)
}
func setChartData(x: [Double], y: [Double]) {
// 1 - creating an array of data entries
var yVals1 : [ChartDataEntry] = [ChartDataEntry]()
for var i = 0; i < x.count; i++ {
yVals1.append(ChartDataEntry(value: y[i], xIndex: i))
}
// 2 - create a data set with our array
let set1: LineChartDataSet = LineChartDataSet(yVals: yVals1, label: "First Set")
set1.axisDependency = .Left // Line will correlate with left axis values
set1.setColor(UIColor.redColor().colorWithAlphaComponent(0.5)) // our line's opacity is 50%
set1.setCircleColor(UIColor.redColor()) // our circle will be dark red
set1.lineWidth = 2.0
set1.circleRadius = 6.0 // the radius of the node circle
set1.fillAlpha = 65 / 255.0
set1.fillColor = UIColor.redColor()
set1.highlightColor = UIColor.whiteColor()
set1.drawCircleHoleEnabled = true
//3 - create an array to store our LineChartDataSets
var dataSets : [LineChartDataSet] = [LineChartDataSet]()
dataSets.append(set1)
//4 - pass our months in for our x-axis label value along with our dataSets
let data: LineChartData = LineChartData(xVals: x, dataSets: dataSets)
data.setValueTextColor(UIColor.whiteColor())
//5 - finally set our data
self.lineChartView.data = data
data.notifyDataChanged()
lineChartView.notifyDataSetChanged()
}
【问题讨论】:
-
我尝试将值添加到全局数组中,并从 viewWillAppear 调用函数 override func viewWillAppear(animated: Bool) { setChartData(resultID_statistics, y: resultWeight_statistics) }
-
从viewwillappear调用时不重新加载?
-
不,它没有,只有当我切换到其他 VC 并切换回来
标签: ios swift view charts reload