禁用滚动UIWebView允许?
我必须在文章下面展示一个带有UITableView的Web文章。 
 我发现的唯一select是在tableView标题的UIWebView中显示文章。 
为了做到这一点,我必须得到的webView内容的高度,我必须禁用滚动的webView。
我发现两个解决scheme禁用滚动:
 for (id subview in webView.subviews) if ([[subview class] isSubclassOfClass: [UIScrollView class]]) ((UIScrollView *)subview).scrollEnabled=NO; 
或在JavaScript中:
 <script type="text/javascript"> touchMove = function(event) { event.preventDefault(); } 
我听说第一个解决scheme是苹果禁止的,但是我没有任何证据。 我的申请将被拒绝使用这种解决scheme? 如果是这样,我可以使用第二个解决scheme而不被拒绝?
 从iOS5开始,我们可以直接访问UIWebView的滚动视图。 
 您可以禁用滚动和反弹像这样: 
 webView.scrollView.scrollEnabled = NO; webView.scrollView.bounces = NO; 
由于这个问题仍然适用,有一个新的方法来做到这一点! (iOS 7.0+,也许iOS 6也没有确认)
 webView.scrollView.scrollEnabled = NO; 
保重 :)
您可以简单地将Web视图用户交互属性设置为no
 webView.userInteractionEnabled = NO; 
它非常简单,工作正常,谢谢:)
对于所有ios版本,您可以使用此代码而不是setScrollEnabled:
 for (UIView *view in webview.subviews) { if ([view isKindOfClass:[UIScrollView class]]) { UIScrollView *scrollView = (UIScrollView *)view; scrollView.scrollEnabled = NO; } } 
 使用这个<body ontouchmove="event.preventDefault()"> 
我认为是Javascript
 <script type="text/javascript"> touchMove = function(event) { event.preventDefault(); } 
是最好的解决scheme。
确实 :
你的第一个问题,或者
 [[[WebView subviews] lastObject] setScrollingEnabled:NO]; 
一个(相同的东西)可能会被拒绝,因为没有logging,或让你的应用程序在进一步的ios更新崩溃。
而且
 [[myWebView scrollView] setBounces:NO]; 
方法不适用于iOS <5。
 [[[WebView subviews] lastObject] setScrollingEnabled:NO]; 
为我sorting
我不认为第一个选项是被苹果禁止的。
你可以试试
 [[[Webview subviews] lastObject] setScrollingEnabled:NO]; 
如果你不想在UIWebView中使用任何链接,你也可以这样做
 [myWebView setUserInteractionEnabled:NO]; 
第一个被苹果拒绝。 今天早上发生在我身上。
[[myWebView scrollView] setBounces:NO];
用它 :
 [[webView scrollView] setBounces:NO]; [[webView scrollView] setScrollingEnabled:NO]; 
尝试这个,
 [(UIScrollView *)[[webView subviews] lastObject] setScrollEnabled:NO]; 
 我在UIScrollView放置了一些UIWebView ,除非我停用webviews上的用户交互(即使使用[[webview scrollview] setScrollEnabled:NO] ),我也不会滚动。 所以我把UIWebView放在一个UIView里面,这对我UIView ,但是在我的HTML里面的UIWebView中的交互链接或者div并没有工作。 
 我唯一能做的就是把UIWebView放在UIScrollView这样HTML交互就可以工作,但是UIScrolling不会。 
 然后,我为webviews创build了一个自定义委托来监听从webview中包含的HTML调用的window.open("http:/customEvent") 。 我还添加了一个JavaScript刷卡检测,将启动我的自定义事件。 
 当webview委托收到这个,我通知一个控制器,然后dynamic滚动我的UIScrollView 。 显然,我必须build立一个逻辑来监视和滚动到下一页或上一页。 不是最漂亮的解决scheme,但它为我工作。 
SWIFT 3版本
  webView.scrollView.bounces = false webView.scrollView.isScrollEnabled = false 
 试试你的HTML( <HEAD>标签) 
 <script> document.ontouchmove = function(event) { event.preventDefault(); } </script> 
这将禁用您的网页上的滚动。
(在任何网页上工作,不只是UIWebView)
我需要禁用滚动,因为解散一个自定义键盘搞砸了与webView滚动。 没有别的工作,我诉诸这样的事情:
 -(void)viewDidLoad{ [super viewDidLoad]; [self.webView.scrollView addObserver:self forKeyPath:@"contentOffset" options:NSKeyValueObservingOptionNew context:nil]; self.webView.scrollView.showsVerticalScrollIndicator = NO; } -(void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context{ if (!CGPointEqualToPoint(self.webView.scrollView.contentOffset, CGPointZero)){ self.contentOffset = CGPointZero; } } 
是UIScrollview上的UIWebview和UITableView,并设置webview的高度(并添加到Scrollview的总ContentSize)像你想要的?
 [[[WebView subviews] lastObject] setScrollingEnabled:NO];