私のアプリケーションは、 Shinobiライブラリを使用して実装された 2 つの異なるチャートを含む水平方向にスクロール可能な領域を示しています。私のページ化された Scrollview は ATPagingView を使用して作成されているため、次のコードを使用してグラフを含めました。
- (NSInteger)numberOfPagesInPagingView:(ATPagingView *)pagingView {
return 2;
}
- (UIView *)viewForPageInPagingView:(ATPagingView *)pagingView atIndex:(NSInteger)index {
// Instantiate a tutorial item controller and initialise with the proper content
self.chartView = [[ShinobiChart alloc]initWithFrame:CGRectMake(0, 0, 100, 100)];
chartView.title = @"example charts";
chartView.autoresizingMask = ~UIViewAutoresizingNone;
// Use a number axis for the x axis.
SChartNumberAxis *xAxis = [[SChartNumberAxis alloc] init];
chartView.xAxis = xAxis;
// Use a number axis for the y axis.
SChartNumberAxis *yAxis = [[SChartNumberAxis alloc] init];
chartView.yAxis = yAxis;
chartView.datasource = self;
chartView.userInteractionEnabled = YES;
return chartView;
}
チャートは正しく表示されますが、スクロールしようとすると、スクロール可能なコンテナーが移動せず、2 番目のチャートが表示されません。奇妙なことに、基になるコンテナーと対話するためのスペースを確保するためにチャートのサイズを変更した場合、または次のような単純なビューで同じ操作を行った場合:
- (UIView *)viewForPageInPagingView:(ATPagingView *)pagingView atIndex:(NSInteger)index {
// Instantiate a tutorial item controller and initialise with the proper content
self.chartView = [[UIView alloc]initWithFrame:CGRectMake(0, 0, 100, 100)];
return chartView;
}
まあ..それは完全に動作します。ShinobiChart ビューがどういうわけか touch イベントをインターセプトし、スクロールビューに転送していないようです。お気づきのとおり、ユーザー インタラクションをアクティブにしようとしましたが、機能しません。別のビュー内でチャートをボックス化しても機能しません。
何か案が?