如何阻止UIScrollView水平弹跳?

rus*_*elf 14 iphone cocoa-touch

我有一个UIScrollView显示垂直数据,但水平组件不比iPhone的屏幕宽.问题是用户仍然能够水平拖动,并且基本上暴露UI的空白部分.我试过设置:

scrollView.alwaysBounceHorizontal = NO;
scrollView.directionalLockEnabled = YES;
Run Code Online (Sandbox Code Playgroud)

这有点帮助,但仍然不能阻止用户水平拖动.当然有一种方法可以轻松解决这个问题吗?

小智 19

scrollView.bounces = NO;
Run Code Online (Sandbox Code Playgroud)

为我工作.


Mik*_*ter 15

这很奇怪,因为每当我在任一维度上创建一个框架和内容大小在屏幕范围内的滚动视图时,滚动视图就不会在该方向上滚动(或反弹).

// Should scroll vertically but not horizontally
UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, 320, 480)];
scrollView.contentSize = CGSizeMake(320, 1000);
Run Code Online (Sandbox Code Playgroud)

你确定框架完全适合屏幕,而且contentSize的宽度不大于滚动视图的宽度吗?


Jal*_*tre 7

在storyboard-scrollview中垂直弹跳的复选框可以简单地帮助...

在此输入图像描述


Dar*_*ron 6

尝试将scrollView.bounces设置为NO并将scrollView.alwaysBounceVertical设置为YES.

  • 那是在那里的一半,现在它垂直滚动,但从不水平,但不再垂直弹跳......如果它仍然可以垂直弹跳会很好,因为在iPhone没有反弹的情况下滚动似乎是不自然的. (2认同)

Mic*_*kov 6

在Swift中对我有用:

scrollView.alwaysBounceHorizontal = false
scrollView.bounces = false
Run Code Online (Sandbox Code Playgroud)

  • 这也会禁用垂直反弹。 (3认同)