【问题标题】:UIScrollView (paging mode) bounces only when there two or more pages?UIScrollView(分页模式)仅在有两个或更多页面时反弹?
【发布时间】:2010-09-15 09:29:55
【问题描述】:

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

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

谢谢

【问题讨论】:

    标签: ipad uiscrollview bounce


    【解决方案1】:

    您可以使用该属性:

    scroll.alwaysBounceHorizontal= YES;
    

     scroll.alwaysBounceVertical = YES;
    

    或两者兼而有之

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

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

    祝你好运

    【讨论】:

      【解决方案2】:

      回答我自己。

      如果你想让 UIScrollView 能够反弹,你应该将它的 contentSize 设置为大于它的帧大小。

      再大 1px 就足够了

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

      【讨论】:

        猜你喜欢
        • 2011-03-23
        • 1970-01-01
        • 2019-07-29
        • 1970-01-01
        • 2013-04-29
        • 1970-01-01
        • 1970-01-01
        • 2020-06-19
        • 1970-01-01
        相关资源
        最近更新 更多