グラフの列を選択可能にし、クリックすると選択した列の詳細を表示しようとしています。すべての列は1つのシリーズで表されます(すぐに理解できます)。
これは私が各シリーズを構築する方法です:
-(SChartSeries *)sChart:(ShinobiChart *)chart seriesAtIndex:(int)index {
SChartColumnSeries *series = [SChartColumnSeries new];
series.style.showAreaWithGradient = NO;
series.stackIndex = [NSNumber numberWithInt:0];
series.selectedStyle.showAreaWithGradient = NO;
CHART_COLOR_TYPE dataType = [TestGraphDataManager getDataType:index];
series.style.areaColor = (dataType == ACCOUNT)?
[UIColor colorWithRed:227.0f/255.0f green:179.0f/255.0f blue:0.0f/255.0f alpha:0.5f]:
[UIColor colorWithRed:0.0f/255.0f green:172.0f/255.0f blue:235.0f/255.0f alpha:0.5f];
series.selectedStyle.areaColor = [UIColor colorWithRed:129.0f/255.0f green:0.0f/255.0f blue:82.0f/255.0f alpha:0.5f];
series.selectionMode = SChartSelectionSeries;
series.style.lineColor = [UIColor clearColor];
series.selectedStyle.lineColor = [UIColor clearColor];
return series;
}
私が現在抱えている問題は、最初のシリーズだけが選択可能であるということです。また、各バーを異なるシリーズで表すようにしたので、色を簡単に切り替えることができます。series.selectionMode = SChartSelectionSeries
最後に、追加のデータをロードできるようにこのデリゲートイベントがありますが、これも最初のシリーズでのみ呼び出されます
- (void)sChart:(ShinobiChart *)chart toggledSelectionForSeries:(SChartSeries *)series nearPoint:(SChartDataPoint *)dataPoint atPixelCoordinate:(CGPoint)pixelPoint{
NSLog(@"click event called");
//Display data
}
なぜこれが起こっているのか誰かが知っていますか?それは私を一日中狂わせてきました。
よろしくお願いします。
編集:
私はseries.stackIndex = [NSNumber numberWithInt:0];
それが同じ名前のスタックを持つすべてのバーを作るので大きな問題を見つけました(名前の名前は私の観点では問題ではないので)、私はすべてのバーが同じになるようにこれを行います目盛りマーカーからの距離と、バーがあまり細くならないようにします。しかし、忍はそれらの値に目に見えないバーを配置し、それらは他の値の上にあり、最初のシリーズだけが他のシリーズの上にあるために選択可能になると私は信じています。その行を削除すると、グラフィックはひどく見えますが、すべてクリック可能です。これを回避する方法、またはこの問題を回避する方法についてのアイデアはありますか?
(スタッキングインデックスを使用して)どのように見えるべきか、しかしそれはクリックイベントを壊します:
インデックスをスタックしないと、すべてのバーはクリック可能ですが、見栄えが悪く、4本のバーしか使用していないバーが多いほど悪化します。