如何在代码

时间:2016-06-29 05:09:36

标签: ios objective-c shinobi

我有一个条形图工作,我可以通过点击它们来选择条形图。

在我-sChart:seriesAtIndex:数据源的ShinobiChart中我实施了:

SChartColumnSeries *series = [[SChartColumnSeries alloc] init];
series.detectTapsOutsideBar = YES;
series.selectionMode = SChartSelectionPoint;

哪个效果很好。我现在要做的是能够根据其背后的数据索引选择一个特定的栏。你怎么做到这一点?我查看了图表,系列但找不到任何选择列的方法。

另外还要加分:)我需要确保始终至少选择一列。

更新

我尝试添加以下代码:

for (int index = 0; index < self.chartView.series[0].dataSeries.dataPoints.count; index++)
{
    SChartDataPoint *point = (SChartDataPoint *)self.chartView.series[0].dataSeries.dataPoints[index];
    if (lapIndex == index)
    {
        point.selected = YES;
    }
    else
    {
        point.selected = NO;
    }
}

似乎根本没有效果。我也尝试重绘图表。

最后,我删除了该代码并在图表上调用了-reloadData-redrawChart,然后在数据源中设置了选中状态。这很有效。

1 个答案:

答案 0 :(得分:1)

免责声明 我是ShinobiControls的开发人员。

我们最近更改了我们的数据点选择API,该API将在我们的下一个版本中出现,以使其更清晰。

目前,你必须循环播放你的系列节目&#39;数据点通过&#34; dataSeries.dataPoints&#34;阵列。然后将从数组ID中拉出的点从类型id转换为SChartDataPoint,并在该点上设置selected属性。

或者,如果要在图表最初绘制时选择数据点,则只需在SChartDatasource方法中设置您返回的SChartDataPoint对象的selected属性&#34; dataPointAtIndex:&#34;。

要确保一次只选择一个点,您可以设置&#34; togglePointSelection&#34; BOOL属性为NO。将此属性设置为YES意味着您可以一次选择多个点。