AAChartKit-Swift
AAChartKit-Swift copied to clipboard
基金估值功能问题
第一次请求数据,在最后一个有效的数据点上添加AADataLabel,没有数据的点将数据置空。
之后,每1分钟会请求新的数据,使用chartView.aa_updateChart(options: aaOptions, redraw: true)重绘图表后,小圆点也被重复的绘制了。
chartView.aa_updateChart(options: aaOptions, redraw: true)
此方法是高级更新方法, 只会对 AAOptions 已改变的的内容进行更新. 你已添加的 AADataElement 没有改变 AAMarker 的值, 调用此方法更新肯定无用.
另外, 只刷新数据的话, 使用
/// Function of only refresh the chart data after the chart has been rendered
///
/// - Parameter chartOptionsSeries: chart options series array
public func aa_onlyRefreshTheChartDataWithChartOptionsSeries(_ chartOptionsSeries: [AASeriesElement]) {
aa_onlyRefreshTheChartDataWithChartOptionsSeries(chartOptionsSeries, animation: true)
}
此方法更恰当一些, 此方法内部调用的是 Highcharts 专门更新 data 的方法(如下):
function onlyRefreshTheChartDataWithSeries(receivedSeries, animation) {
let receivedSeriesArr = JSON.parse(receivedSeries);
let seriesArrLength = receivedSeriesArr.length;
for (let i = 0; i < seriesArrLength; i++) {
let receivedSeriesElementData = receivedSeriesArr[i].data;
let seriesElement = aaGlobalChart.series[i];
seriesElement.setData(receivedSeriesElementData, false);
}
let animationBool = (animation === "true");
aaGlobalChart.redraw(animationBool);
}
chartView.aa_updateChart(options: aaOptions, redraw: true)此方法是高级更新方法, 只会对 AAOptions 已改变的的内容进行更新. 你已添加的 AADataElement 没有改变 AAMarker 的值, 调用此方法更新肯定无用.
另外, 只刷新数据的话, 使用
/// Function of only refresh the chart data after the chart has been rendered /// /// - Parameter chartOptionsSeries: chart options series array public func aa_onlyRefreshTheChartDataWithChartOptionsSeries(_ chartOptionsSeries: [AASeriesElement]) { aa_onlyRefreshTheChartDataWithChartOptionsSeries(chartOptionsSeries, animation: true) }此方法更恰当一些, 此方法内部调用的是 Highcharts 专门更新 data 的方法(如下):
function onlyRefreshTheChartDataWithSeries(receivedSeries, animation) { let receivedSeriesArr = JSON.parse(receivedSeries); let seriesArrLength = receivedSeriesArr.length; for (let i = 0; i < seriesArrLength; i++) { let receivedSeriesElementData = receivedSeriesArr[i].data; let seriesElement = aaGlobalChart.series[i]; seriesElement.setData(receivedSeriesElementData, false); } let animationBool = (animation === "true"); aaGlobalChart.redraw(animationBool); }
我使用了chartView.aa_onlyRefreshTheChartDataWithChartModelSeries(chartSeriesArr, animation: true)方法,但是依然会出现多个圆点,如下图
