2015-06-30 166 views
3

我正在使用iOS-Charts來顯示一個簡單的立方折線圖,並且想要每秒更新一次報告新數據。我已經嘗試過使用addEntry方法來動態地將值添加到數組的末尾,並且我已驗證數據確實已在每秒之後成功添加到數組中。但是圖表本身不會更新。我查看了MPAndroidChart上的文檔,並且在第一次調用addEntry方法後沒有指定調用任何類型的更新方法。我在文檔的另一部分看到,在刷新圖表的Chart對象上有一個invalidate()方法,但是,當我訪問Chart對象時沒有這個選項,我也不知道這是否是需要。addEntry方法如何實時更新LineChart?

示例代碼:

var set1 = lineChartView.data?.getDataSetByIndex(0) 
var index = set1?.entryCount 
var value = arc4random_uniform(14) + 1 
var chartEntry = ChartDataEntry(value: Float(value), xIndex: index!) 

set1?.addEntry(chartEntry) 

在示範項目的圖表修改採用了滑蓋的控制,但這個例子中,它只是重新創建數據並重設chart.data對象,而不是動態修改原始數據集正如我試圖去做的那樣。

任何幫助我需要做的或我應該看看的地方非常感謝。

的Xcode 6.3

SWIFT 1.2

的iOS 8.3

IOS的​​圖表2.1.0

回答

6

嘗試在你的lineChartView調用notifyDataSetChanged(),它應該更新圖表。

另請參閱已知問題頁面,特別是:https://github.com/danielgindi/ios-charts/issues/264

+1

是的調用notifyDataSetChanged()會導致圖表更新。我也用這裏的例子來幫助:[MPAndroidChart示例](https://github.com/PhilJay/MPAndroidChart/blob/master/MPChartExample/src/com/xxmassdeveloper/mpchartexample/RealtimeLineChartActivity.java)謝謝! – user1038280