I know you can use a javascript to do this
<script type="text/javascript">
touchMove = function(event) {
event.preventDefault();
}
Is there a way to do the same using objective-c?
try this...
UIView * v = [[webView subviews] lastObject];
[v setScrollEnabled:NO];
[v bounces:NO];
EDIT: Added checks to original answer based on comment below
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];
}
}
You can also access the scrollView like this :
webView.scrollView.scrollEnabled = false;
webView.scrollView.bounces = false;
Using @aaron-saunders and @matt-rix 's answers, here's what works best for me :
UIView *v = [[webView subviews] lastObject];
if([v isKindOfClass:[UIScrollView class]])
[v setScrollEnabled:NO];
No need to use complex methods. You can access Scrollview of webview directly as below.
web_view.scrollView.scrollEnabled = NO;
来源:https://stackoverflow.com/questions/3800441/disable-uiwebview-default-scrolling-behavior-using-objective-c