有人知道如何阻止UIWebView垂直反弹吗?我的意思是,当用户触摸他们的iphone屏幕,向下拖动他们的手指时,web视图在我加载的网页上方显示一个空白点?

我研究了以下可能的解决方案,但没有一个适合我:

http://www.iphonedevsdk.com/forum/iphone-sdk-development/996-turn-off-scrolling-bounces-uiwebview.html

http://forums.macrumors.com/showthread.php?t=619534

我如何停止一个UIScrollView水平反弹?


当前回答

在寻找答案的过程中偶然发现了这个,我最终只是在瞎折腾的过程中幸运地找到了自己的答案。我所做的

[[webview scrollView] setBounces:NO];

这招奏效了。

其他回答

在寻找答案的过程中偶然发现了这个,我最终只是在瞎折腾的过程中幸运地找到了自己的答案。我所做的

[[webview scrollView] setBounces:NO];

这招奏效了。

在iOS5上,只有当你计划让用户缩放webview内容(我:双击),反弹设置是不够的。你还需要设置alwaysBounceHorizontal和alwaysBounceVertical属性为NO,否则当它们缩小时(另一个双击…)默认它将再次反弹。

在iOS 5 SDK中,你可以直接访问与web视图相关的滚动视图,而不是遍历它的子视图。

所以要禁用滚动视图中的“反弹”,你可以使用:

myWebView.scrollView.bounces = NO;

请参阅UIWebView类参考。

(但是如果你需要支持5.0之前的SDK版本,你应该听从Mirek Rusin的建议。)

布拉德的方法对我很管用。如果你使用它,你可能想让它更安全一点。

id scrollView = [yourWebView.subviews objectAtIndex:0];
if( [scrollView respondsToSelector:@selector(setAllowsRubberBanding:)] )
{
    [scrollView performSelector:@selector(setAllowsRubberBanding:) withObject:NO];
}

如果苹果改变了一些东西,那么反弹就会回来-但至少你的应用程序不会崩溃。

斯威夫特3

webView.scrollView.bounces = false