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


当前回答

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

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

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

其他回答

我遍历UIWebView的子视图集合,并将它们的背景设置为[UIColor blackColor],与网页背景的颜色相同。视图仍然会反弹,但它不会显示丑陋的深灰色背景。

我所做的就是:

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应用。

webView.scrollView.scrollEnabled =没有; webView.scrollView.bounces =没有;

移动safari上的固定定位

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

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也是一样。