UIScrollView(分页模式)只有在有两个或更多页面时才会弹跳?

时间:2010-09-15 09:29:56

标签: ipad uiscrollview bounce

我只是有这个奇怪的问题。我有一个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双倍宽度,它会反弹。

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

由于

2 个答案:

答案 0 :(得分:9)

您可以使用该属性:

scroll.alwaysBounceHorizontal= YES;

 scroll.alwaysBounceVertical = YES;

或两者

不要添加1px,如果你在滚动视图中的UIView中添加可触摸元素,它会给你带来麻烦。

重新定义滚动框后,永远不要忘记再次定义contentSize。甚至contentSize保持相同的值。

祝你好运

答案 1 :(得分:0)

回答自己。

如果您希望UIScrollView能够反弹,则应将其contentSize设置为大于其帧大小。

即使1px更大就足够了

我自己的代码,如果我设置scroll.contentSize = CGSizeMake(768 * 1 + 1,1004);它会工作和反弹。