【发布时间】:2011-04-17 13:24:17
【问题描述】:
我知道你可以使用 javascript 来做到这一点
<script type="text/javascript">
touchMove = function(event) {
event.preventDefault();
}
有没有办法使用objective-c做同样的事情?
【问题讨论】:
标签: iphone objective-c uiwebview
我知道你可以使用 javascript 来做到这一点
<script type="text/javascript">
touchMove = function(event) {
event.preventDefault();
}
有没有办法使用objective-c做同样的事情?
【问题讨论】:
标签: iphone objective-c uiwebview
试试这个...
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];
}
}
【讨论】:
UIWebView 的内部视图层次结构可以在任何操作系统更新时更改。至少在调用它们之前检查子视图是否响应这些方法。
setBounces:NO,而不是bounces:NO。
使用 @aaron-saunders 和 @matt-rix 的答案,这是最适合我的方法:
UIView *v = [[webView subviews] lastObject];
if([v isKindOfClass:[UIScrollView class]])
[v setScrollEnabled:NO];
【讨论】:
你也可以像这样访问滚动视图:
webView.scrollView.scrollEnabled = false;
webView.scrollView.bounces = false;
【讨论】:
无需使用复杂的方法。您可以直接访问 webview 的 Scrollview,如下所示。
web_view.scrollView.scrollEnabled = NO;
【讨论】: