有人知道如何阻止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水平反弹?


当前回答

移动safari上的固定定位

这个链接帮助我很多.....很简单. .有一个演示。

其他回答

警告。我在我的应用程序中使用了setAllowsRubberBanding:,苹果拒绝了它,声明非公共API函数是不允许的(引用:3.3.1)

下面是一个使用scrollview setBounces函数的通用应用程序示例。这是一个开源项目/示例,位于这里:链接到SimpleWebView(项目Zip和源代码示例)

这为我工作,而且很漂亮(我使用phonegap与webView)

[[webView.webView scrollView] setScrollEnabled:NO];

or

[[webView scrollView] setScrollEnabled:NO];

我曾关注过一个名为QuickConnect的项目,该项目可以将web应用程序轻松地创建为iPhone上成熟的可安装应用程序,并找到了一个可行的解决方案,如果你不想让你的屏幕完全可滚动的话,而在我的情况下,我不想让屏幕可滚动。

在上面提到的项目/博客文章中,他们提到了一个javascript函数,你可以添加它来关闭反弹,本质上可以归结为:

    document.ontouchmove = function(event){
        event.preventDefault();
    }

如果你想了解更多关于他们如何实现它,只需下载QuickConnect并查看....但基本上它所做的就是在页面加载上调用javascript…我试着把它放在我的文档的头部,它似乎工作得很好。

查看UIScrollView的bounces属性。苹果文档中写道:

如果该属性的值为YES(默认值),则滚动视图在遇到内容边界时进行反弹。在视觉上反弹表明滚动已经到达内容的边缘。如果该值为NO,滚动在内容边界处立即停止而不反弹。

确保你使用了正确的UIScrollView。我不确定UIWebView的层次结构是什么样的,但是滚动视图可以是UIWebView的父视图,而不是子视图。