0

我正在为我的 iOS 应用程序使用Charts 库,在该应用程序中,我需要通过连续移动图形来显示数据绘图。数据非常庞大,每秒 16 个数据点。

有什么想法或建议可以优化它吗?

我们也在开发类似的安卓应用。我们在 Android 上使用 MPAndroidChart,并且对 Android 应用程序遵循相同的过程。但是在Android中,我们没有遇到这样的问题。我们观察到在 Android 中,他们正在使用该库中缺少的 chart.invalidate() 方法。

有什么方法可以使 iOS 中的图表视图无效?

我正在使用以下代码:

var entryAnalog = ChartDataEntry();
let analogLineData = self.analogLineChartVw.lineData ?? LineChartData()
self.analogSet = analogLineData.getDataSetByLabel("Test\(i)", ignorecase: true);
if (self.analogSet == nil) {
    self.analogSet = self.createSet(color: UIColor.red, setLabel: "Test\(i)");
    entryAnalog = ChartDataEntry(x: 0.6, y: 0)
    let isEntryAdded = self.analogSet?.addEntry(entryAnalog);
    analogLineData.addDataSet(self.analogSet);
}
else {
    let analogIndex = analogLineData.indexOfDataSet(self.analogSet!)
    entryAnalog = ChartDataEntry(x: 0.6, y: 0);
    analogLineData.addEntry(entryAnalog, dataSetIndex: analogIndex);
}
self.analogLineChartVw.data = analogLineData
self.analogLineChartVw.setVisibleXRangeMaximum(50);
self.analogLineChartVw.moveViewToX(Double(analogLineData.getDataSetByIndex(1)?.entryCount ?? 0));

我正在接收 60 毫秒的数据,并且数据的数组格式为 33 或更多。目前,我能够绘制图表并连续移动它。但是 3-4 分钟后,图表变得庞大,它挂起 UI,导致我的应用程序性能不佳。

我在库图表中看到的设置数据 self.analogLineChartVw.data =analogLineData 设置器方法本身呈现完整的 UI。所以,这个方法的持续调用就是重新渲染整个图表,这会影响 UI 性能。

如何提高应用程序的性能使其不会阻塞 UI?

4

0 回答 0