1

私のアプリケーションは、 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 イベントをインターセプトし、スクロールビューに転送していないようです。お気づきのとおり、ユーザー インタラクションをアクティブにしようとしましたが、機能しません。別のビュー内でチャートをボックス化しても機能しません。

何か案が?

4

1 に答える 1