使用objective-c禁用UIWebView默认滚动行为

时间:2010-09-27 00:31:41

标签: iphone objective-c uiwebview

我知道您可以使用javascript来执行此操作

<script type="text/javascript">
touchMove = function(event) {
event.preventDefault();
}

有没有办法使用objective-c做同样的事情?

4 个答案:

答案 0 :(得分:7)

试试这个......

UIView * v = [[webView subviews] lastObject];
[v setScrollEnabled:NO];
[v bounces:NO];

编辑:根据以下评论添加了对原始答案的检查

UIView * v = [[webView subviews] lastObject];
if([v isKindOfClass:[UIScrollView class] ]) {
    if ([v respondsToSelector:@selector(setScrollEnabled]) {
        [v setScrollEnabled:NO];
    }
    if ([v respondsToSelector:@selector(bounces)]) {
        [v bounces:NO];
    }
}

答案 1 :(得分:2)

您还可以像这样访问scrollView:

webView.scrollView.scrollEnabled = false;
webView.scrollView.bounces = false;

答案 2 :(得分:1)

使用@ aaron-saunders和@ matt-rix的答案,这里最适合我的是:

UIView *v = [[webView subviews] lastObject];
if([v isKindOfClass:[UIScrollView class]])
    [v setScrollEnabled:NO];

答案 3 :(得分:0)

无需使用复杂的方法。您可以直接访问webview的Scrollview,如下所示。

web_view.scrollView.scrollEnabled = NO;