swift: reload-Ansicht für die Anzeige der neuen Daten im Diagramm
im mit das Diagramm-framework "Charts", aber es hat keine reload-Funktion für die Karte mit neuen Daten. Es können nur anzeigen, das Diagramm einmal mit dem laden der viewController. Aber ich will das nachladen der Ansicht/Diagramm mit einer Auswahl aus einer Tabelle. (die Tabelle ist in anderen viewcontroller)
in meinem Fall, ich habe einen ViewController mit einem Blick in
und die Daten werden in zwei arrays: x-und y -
func setChartData(x: [Double], y: [Double])
Ich versuchte zu rufen, die Funktion aber nicht anzeigen.
Wenn die Funktion aufgerufen wird von viewWillAppear()
die Karte ist nur zu zeigen, wenn ich wechseln zu einem anderen viewcontroller, und wechseln Sie wieder
wie kann ich dieses Problem lösen
selbst.Blick!.setNeedsDisplay() innerhalb der Funktion nicht funktioniert.
Meiner viewcontroller:
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()
}
- Ich versuchte, fügen Sie die Werte in die globalen arrays, und rufen Sie die Funktion von viewWillAppear override func viewWillAppear(animierte: Bool) { setChartData(resultID_statistics, y: resultWeight_statistics) }
- es laden nicht beim Aufruf von viewwillappear?
- Nein ist es nicht, nur wenn ich Umschalten auf einen anderen VC und wieder zurück wechseln
Du musst angemeldet sein, um einen Kommentar abzugeben.
Aus Ihrer Dokumentation scheint, dass Sie brauchen, um zu Benachrichtigen, das ändern von Datensätzen:
Für mehr Informationen schauen Sie sich Ihre wiki.
Hinweis: aus repo README:
also, wenn Sie auf den link klicken und sehen "MPAndroidChart" Mach dir keine sorgen 🙂
Können Sie auch versuchen:
Dies ist genommen aus Ihrem Beispiel-Projekt in objective-c:
self.lineChartView.data.notifyDataChanged()
zusammen mitself.lineChartView.notifyDataChanged()
hat nicht funktioniert, richtig?self.lineChartView.notifyDataChanged()
dont vorhanden ist, meinst duself.lineChartView.notifyDataSetChanged()
? auch nicht funktionierenself.lineChartView.data
?