如何关闭UIWebView水平反弹

时间:2011-05-13 18:05:24

标签: objective-c ios uiwebview zoom bounce

简单的问题,我有一个webview,它应该只包含一个图像供用户放大和缩小。为了保持我的外观干净,我想完全禁用此视图上的弹跳,但仍允许滚动。此解决方案适用于垂直反弹,但只要我将图像缩放到比屏幕大的尺寸,就可以进行水平反弹:

for (id subview in webView.subviews 
{
    if ( [[subview class] isSubclassOfClass:[UIScrollView class]] )
    {

        ((UIScrollView*) subview).bounces = NO;
        ((UIScrollView*) subview).alwaysBounceVertical = NO;
        ((UIScrollView*) subview).alwaysBounceHorizontal = NO;
        ((UIScrollView*) subview).bouncesZoom = NO;            
    }
}

2 个答案:

答案 0 :(得分:11)

以下代码为我们停止弹跳提供了诀窍:

NSString* scriptToPreventBouncing = @"<script type=\"text/javascript\"> document.ontouchmove = function(e){ e.preventDefault(); } </script>";
NSString* footerHTML = @"<div>All rights reserved</div>";
[footer loadHTMLString: [scriptToPreventBouncing stringByAppendingString:footerHTML] baseURL:[NSURL URLWithString:@"http://somewebsite.com"]];

我不确定这是否会禁用图像缩放。但它应该停止弹跳。

答案 1 :(得分:7)

在iOS 5上,您可以通过以下方式解决问题:

UIWebView *webView = [[UIWebView alloc] ....];

webView.scrollView.scrollEnabled = NO; 
webView.scrollView.bounces = NO;

注意:这仅适用于iOS5及更高版本