我有一个条形图工作,我可以通过点击它们来选择条形图。
在我-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
,然后在数据源中设置了选中状态。这很有效。
答案 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意味着您可以一次选择多个点。