有谁知道如何阻止UIWebView垂直弹跳?我的意思是当用户触摸他们的iPhone屏幕时,向下拖动他们的手指,webview在我加载的网页上方显示一个空白点?
我已经看过以下可能的解决方案,但它们都不适用于我:
http://www.iphonedevsdk.com/forum/iphone-sdk-development/996-turn-off-scrolling-bounces-uiwebview.html
http://forums.macrumors.com/showthread.php?t=619534
如何阻止UIScrollView水平弹跳?
for (id subview in webView.subviews) if ([[subview class] isSubclassOfClass: [UIScrollView class]]) ((UIScrollView *)subview).bounces = NO;
...似乎工作正常.
它也将被App Store接受.
更新:在iOS 5.x +中有一种更简单的方法 - UIWebView
具有scrollView
属性,因此您的代码可能如下所示:
webView.scrollView.bounces = NO;
同样如此WKWebView
.
我正在研究一个项目,它可以轻松地创建Web应用程序,作为iPhone上名为QuickConnect的完全成熟的可安装应用程序,并找到一个有效的解决方案,如果您不希望屏幕可以滚动,在我的情况下我没有.
在上面提到的项目/博客文章中,他们提到了一个javascript函数,你可以添加它来关闭弹跳,这基本归结为:
document.ontouchmove = function(event){ event.preventDefault(); }
如果你想了解更多关于它们如何实现它的信息,只需下载QuickConnect并检查它....但基本上它所做的就是在页面加载时调用javascript ...我试过把它放在我的文档的头部,它似乎工作正常.
我所做的就是:
UIView *firstView = [webView.subviews firstObject]; if ([firstView isKindOfClass:[UIScrollView class]]) { UIScrollView *scroll = (UIScrollView*)firstView; [scroll setScrollEnabled:NO]; //to stop scrolling completely [scroll setBounces:NO]; //to stop bouncing }
对我来说工作正常...此外,这个问题的答案是苹果将拒绝,如果你在你的iPhone应用程序中使用它.
在iOS 5 SDK中,您可以直接访问与Web视图关联的滚动视图,而不是遍历其子视图.
因此,要在滚动视图中禁用"弹跳",您可以使用:
myWebView.scrollView.bounces = NO;
请参阅UIWebView类参考.
(但是如果你需要在5.0之前支持SDK的版本,你应该遵循Mirek Rusin的建议.)
斯威夫特3
webView.scrollView.bounces = false
警告.我使用了setAllowsRubberBanding:在我的应用程序中,Apple拒绝了它,声明不允许使用非公共API函数(引用:3.3.1)