开发者

Stop scrolling to top in UIWebView - iPhone

开发者 https://www.devze.com 2022-12-31 18:21 出处:网络
I have placed following javascript in my html file. <script TYPE=\"text/javascript\"> function srk(){

I have placed following javascript in my html file.

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

I am scrolling my webview by following code with开发者_开发技巧 some animation.

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

Everything going right, but on problem that I am facing is as follows.

Whenever User/I tap on the status bar of iPhone, WebView Bydefault scrolls to top. This should not be done.

Is it possible to prevent inbuilt functionality ?

I know one of the option is as follows.

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

But is it valid to do ?


You can add a very tiny UIScrollView in the window. Then tapping the status bar won't scroll the web view to top.


A more straightforward way to do this would be to set the scrollsToTop property of the UIScrollView in the WebView to NO.

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

I have tested this on iOS 4.0 and 4.3 (iOS 5 seems to not need this).

adapted from this.

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号