Shinobi中多个系列的多点选择



我有两个线系列,如何在两个系列上同时选择点?基本上,我的图表有两个y值,共享相同的x值,我将它们表示为两个系列。我想将两个点都显示为给定X值的选定点。

你好,谢谢你的回复
我在中这样做

- (void)sChart:(ShinobiChart *)chart toggledSelectionForPoint:(SChartDataPoint *)dataPoint inSeries:(SChartSeries *)series atPixelCoordinate:(CGPoint)pixelPoint
    SChartDataPoint* point1Series1 = [chart.datasource sChart:chart dataPointAtIndex:dataPoint.index forSeriesAtIndex:0];
    point1Series1.selected = YES;
    SChartDataPoint* point1Series2 = [chart.datasource sChart:chart dataPointAtIndex:dataPoint.index forSeriesAtIndex:1];
    point1Series2.selected = YES;

当我在这行代码后打印这两个点的选定状态时,它们返回1(已选定),但它们似乎没有在图表上显示为已选定,只有我在设备上的图表上选择的一个似乎显示为已选择,尽管我在那之后调用了redrawChart。如有任何帮助,将不胜感激

我认为您的图表数据源很可能(我猜是因为我看不到您的代码)没有返回对作为图表一部分的数据点的引用,而是在每次请求时生成一个新的数据点对象。

为了处理此问题,您可以通过SChartSeries对象上的dataSeries属性从图表本身请求数据点。

以下委托方法应执行所需的选择。

- (void)sChart:(ShinobiChart *)chart toggledSelectionForPoint:(SChartDataPoint *)dataPoint inSeries:(SChartSeries *)series atPixelCoordinate:(CGPoint)pixelPoint
{
    // Selection details
    NSInteger dataPointIndex = dataPoint.index;
    BOOL selected = dataPoint.selected;
    for (SChartSeries *chartSeries in chart.series) {
        // If only one data point in the series can be selected at once, then deselect the rest
        if(!series.togglePointSelection && selected) {
            for(SChartDataPoint *dp in chartSeries.dataSeries.dataPoints) {
                dp.selected = NO;
            }
        }
        // Find the data point and perform the selection
        SChartDataPoint *dp = chartSeries.dataSeries.dataPoints[dataPointIndex];
        dp.selected = selected;
    }
}

希望能有所帮助。

您应该能够在数据点上设置.selected并自定义系列。style.selectedPointStyle属性以显示您想要的点:)

相关内容

  • 没有找到相关文章

最新更新