highlightValue 在图表中无法使用 CombinedChartView :: 以编程方式显示标记不起作用 :: ChartIssue :: iOS Swift :: DanielGindi
highlightValue not working in chart with CombinedChartView :: Display marker programmatically is not working :: ChartIssue :: iOS Swift :: DanielGindi
这就是我正在做的!
chart.highlightValue(x: timeStampValue, dataSetIndex: totalCount)
==> 在上面一行中,
timeStampValue
是我在填充数组时设置的 x 轴值。
totalCount
是我在图表中显示的数据数组的总数。
我需要实现的是
当图表屏幕出现时,我需要默认显示标记,为此,我正在使用无效的图表的“highlightValue”方法。
请让我知道以编程方式默认显示标记的解决方案。
注意: 我使用的标记 UI 是自定义的,当我在图表中的某个点手动点击时工作正常:
let marker = CustomMarkerView.viewFromXib()!
marker.chartView = chart
chart.marker = marker
chart.drawMarkers = true
使用的库:https://github.com/danielgindi/Charts
图表数据集:
let data = CombinedChartData()
data.lineData = LineChartData(dataSets:[viewModel.lineChartDataSet, viewModel.emptylineChartDataSet])
data.lineData.highlightEnabled = true
viewModel.lineChartDataSet.highlightColor = AssetsColor.highlightedColor.color
viewModel.lineChartDataSet.drawHorizontalHighlightIndicatorEnabled = false
viewModel.lineChartDataSet.highlightLineDashPhase = 2
viewModel.lineChartDataSet.highlightLineDashLengths = [5, 2.5]
您为 dataSetIndex
参数使用了错误的值
根据您的代码,数据集仅包含 2 个数据
data.lineData = LineChartData(dataSets:[viewModel.lineChartDataSet, viewModel.emptylineChartDataSet])
dataSetIndex不是数据个数,在linechart数据集中表示一条线有很多数据(x,y),所以dataSetIndex更像是哪条线
所以你的代码应该是这样的
chart.highlightValue(x: timeStampValue, dataSetIndex: 0)
chart.highlightValue(x: timeStampValue, dataSetIndex: 0, dataIndex: 0)
当我再添加 1 个 dataIndex
作为 0 的参数时,它起作用了。
这里,dataSetIndex
设置为0,因为它是我合并了2个数据集的CombinedChartView。
这就是我正在做的!
chart.highlightValue(x: timeStampValue, dataSetIndex: totalCount)
==> 在上面一行中,
timeStampValue
是我在填充数组时设置的 x 轴值。
totalCount
是我在图表中显示的数据数组的总数。
我需要实现的是
当图表屏幕出现时,我需要默认显示标记,为此,我正在使用无效的图表的“highlightValue”方法。
请让我知道以编程方式默认显示标记的解决方案。
注意: 我使用的标记 UI 是自定义的,当我在图表中的某个点手动点击时工作正常:
let marker = CustomMarkerView.viewFromXib()!
marker.chartView = chart
chart.marker = marker
chart.drawMarkers = true
使用的库:https://github.com/danielgindi/Charts
图表数据集:
let data = CombinedChartData()
data.lineData = LineChartData(dataSets:[viewModel.lineChartDataSet, viewModel.emptylineChartDataSet])
data.lineData.highlightEnabled = true
viewModel.lineChartDataSet.highlightColor = AssetsColor.highlightedColor.color
viewModel.lineChartDataSet.drawHorizontalHighlightIndicatorEnabled = false
viewModel.lineChartDataSet.highlightLineDashPhase = 2
viewModel.lineChartDataSet.highlightLineDashLengths = [5, 2.5]
您为 dataSetIndex
参数使用了错误的值
根据您的代码,数据集仅包含 2 个数据
data.lineData = LineChartData(dataSets:[viewModel.lineChartDataSet, viewModel.emptylineChartDataSet])
dataSetIndex不是数据个数,在linechart数据集中表示一条线有很多数据(x,y),所以dataSetIndex更像是哪条线
所以你的代码应该是这样的
chart.highlightValue(x: timeStampValue, dataSetIndex: 0)
chart.highlightValue(x: timeStampValue, dataSetIndex: 0, dataIndex: 0)
当我再添加 1 个 dataIndex
作为 0 的参数时,它起作用了。
这里,dataSetIndex
设置为0,因为它是我合并了2个数据集的CombinedChartView。