5

2つのUIScrollViewがあり、1つは水平、1つは垂直、両方ともそれぞれ2ページです(たとえば、水平のUIScrollViewは幅2ページ、垂直のUIScrollViewは高さ2ページです)。水平スクロールビューは垂直スクロールビューにあります。Calcbotのデザインを模倣しようとしています。ボタンの場合は左右にスクロールし、履歴の場合は上下にスクロールできます。

ただし、ビューが読み込まれると、水平スクロールビューは本来あるべき位置よりも約100ピクセル高くなります。次に、それに触れて少し動かし始めると、正しい位置にジャンプ/スキップしてそこにとどまります。最初から正しく表示するにはどうすればよいですか?

これがviewDidLoadの私のコードです:

-(void)viewDidLoad {
horizontalScrollView.pagingEnabled = YES;
verticalScrollView.pagingEnabled = YES;


horizontalScrollView.contentSize = CGSizeMake(horizontalScrollView.bounds.size.width * 2, horizontalScrollView.bounds.size.height); // 2 pages wide.
verticalScrollView.contentSize = CGSizeMake(verticalScrollView.bounds.size.width, verticalScrollView.bounds.size.height * 2);


horizontalScrollView.delegate = self;
verticalScrollView.delegate = self;




[verticalScrollView addSubview:horizontalScrollView];

[verticalScrollView setContentOffset:CGPointMake(0, 640)];

[self.view addSubview:verticalScrollView];

horizontalScrollView.frame = CGRectMake(0, 540, 320, 460);

}

ありがとう。

4

3 に答える 3

4

UIScrollViewでのジャンプは通常、pagingEnabled = YESを設定し、contentOffsetがページ境界上にない位置(bounds.size.heightで除算可能)に設定されている場合に発生します。

于 2012-07-26T06:34:33.957 に答える
0

私は現在UIScrollViewもいじっているので、ちょっと考えてみてください。を使用してみることができ-(void)viewWillAppear:(BOOL)animatedます。たとえば、そのメソッドで最小および最大スクロールを設定します。これは、コンテンツのサイズに依存するためです。コンテンツのサイズは、私が読んだものから、viewWillAppearまで設定されません。

于 2012-06-20T05:13:40.793 に答える
0

この行を移動します

horizontalScrollView.frame = CGRectMake(0, 540, 320, 460);

viewWillAppearの代わりに、それviewDidLoadが機能するかどうかを確認します

于 2012-06-20T05:13:54.733 に答える