【问题标题】:Stop scrolling to top in UIWebView - iPhone停止在 UIWebView 中滚动到顶部 - iPhone
【发布时间】:2011-02-22 05:19:04
【问题描述】:

我在我的 html 文件中放置了以下 javascript。

<script TYPE="text/javascript">
    function srk(){
        document.ontouchmove = function(e){ 
            e.preventDefault(); 
        }
    }
</script>

我正在通过以下带有一些动画的代码来滚动我的 webview。

[myWebView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat: @"window.scrollTo(0,%i);",414*self.initialScrollPosition]];

一切正常,但我面临的问题如下。

每当用户/我点击 iPhone 的状态栏时,WebView 默认滚动到顶部。 不应该这样做。

是否可以阻止内置功能?

我知道其中一个选项如下。

((UIScrollView *)[[myWebView valueForKey:@"_internal"] valueForKey:@"scroller"]).scrollsToTop = NO;

但是这样做有效吗?

【问题讨论】:

    标签: iphone objective-c xcode uiwebview private


    【解决方案1】:

    您可以在窗口中添加一个非常小的 UIScrollView。然后点击状态栏不会将 web 视图滚动到顶部。

    【讨论】:

      【解决方案2】:

      更直接的方法是将WebViewUIScrollViewscrollsToTop 属性设置为NO。

      for(UIView *view in [myWebView subviews]) {
          if([view isKindOfClass:([UIScrollView class])]) {
              [(UIScrollView *)view setScrollsToTop:NO];
          }
      }
      

      我已经在 iOS 4.0 和 4.3 上测试过这个(iOS 5 似乎不需要这个)。

      改编自this

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-06-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-07-25
        • 2015-08-02
        • 1970-01-01
        相关资源
        最近更新 更多