在UIWebView - iPhone中停止滚动到顶部

时间:2010-05-21 06:12:15

标签: iphone objective-c xcode uiwebview private

我在我的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 Bydefault就会滚动到顶部。 这不应该这样做。

是否可以防止内置功能?

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

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

但它有效吗?

2 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:1)

更直接的方法是将scrollsToTopUIScrollView的{​​{1}}属性设置为NO。

WebView

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

改编自this