1

我只是有这个奇怪的问题。我有一个 UIScrollView,而我在那个滚动中只有一页。滚动已启用分页和弹跳。

这是我的代码(在 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,并将其添加到滚动中。并设置滚动的 contentSize 以保持一个视图。

但是在我运行它之后,滚动根本不会反弹。

如果我添加第二个视图并设置滚动的 contentSize 双倍宽度,它会反弹。

我想知道如果只有一页,滚动是否永远不会反弹?

谢谢

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 回答