1

この奇妙な質問があります。UIScrollViewがあり、そのスクロールには1ページしかありません。スクロールはページングが有効で、バウンスが有効です。

これが私のコードです(iPadで)

scroll = [[UIScrollView alloc] init];
scroll.pagingEnabled = YES;
scroll.showsHorizontalScrollIndicator = NO;
scroll.showsVerticalScrollIndicator = NO;
scroll.scrollsToTop = NO;
scroll.bounces = YES;
scroll.delegate = self;
CGRect frame = CGRectMake(0.0, 0.0, 768, 1004);
scroll.frame = frame;
[self.view addSubview:scroll];


UIView *view1 = [[UIView alloc] init];
view1.frame = CGRectMake(0, 0.0, 768, 1004);
view1.clipsToBounds = YES;
view1.backgroundColor = [UIColor redColor];
[scroll addSubview:view1];


scroll.contentSize = CGSizeMake(768 * 1, 1004);

とても簡単です。UIViewを1つ作成し、それをスクロールに追加するだけです。そして、正確に1つのビューを保持するようにスクロールのcontentSizeを設定します。

しかし、実行した後、スクロールはまったくバウンスしません。

2番目のビューを追加し、スクロールのcontentSizeをdouble Widthに設定すると、バウンスします。

1ページだけでスクロールがバウンスしないかどうか疑問に思っていますか?

ありがとう

4

2 に答える 2

9

プロパティを使用できます:

scroll.alwaysBounceHorizontal= YES;

また

 scroll.alwaysBounceVertical = YES;

または両方

1pxを追加しないでください。スクロールビュー内のUIViewにタッチ可能な要素を追加すると、問題が発生します。

スクロールのフレームを再定義した後、contentSizeを再度定義することを忘れないでください。contentSizeでも同じ値を維持します。

幸運を

于 2010-11-23T11:35:43.283 に答える
0

自分に答えてください。

UIScrollViewをバウンスできるようにする場合は、contentSizeをフレームサイズよりも大きく設定する必要があります。

1px大きくても十分です

自分のコードの場合、scroll.contentSize = CGSizeMake(768 * 1 + 1、1004);を設定した場合。それは動作し、跳ね返ります。

于 2010-09-15T10:24:41.830 に答える