2012-01-28 13 views
3

xcode 4のUIwebviewでスクロールを停止する方法を知る必要がありますか?UIWebviewのスクロールを停止する

[[[webView subviews] lastobject] setScrollingEnabled:NO]; 

インスタンスメッセージの「にNSArrayは」セレクタ「lastobject」でメソッドを宣言していないため、上記のコードは動作しません。なぜこれがあるのですか、スクロールを無効にすることを知らない新しいコードがありますか?ありがとう。

答えて

4
UIView* row = nil; 
for(row in webView.subviews){ 
    if([row isKindOfClass:[UIScrollView class] ]){ 
     UIScrollView* scrollRow = (UIScrollView*) row; 
     scrollRow.scrollEnabled = NO; 
     scrollRow.bounces = NO; 
     scrollRow.backgroundColor=[UIColor clearColor]; 
    } 
} 

あなたのコードは、iOS 5であなたがスクロールビューへの直接アクセスを持っていることを

2

スクロールできないように、webviewのUserInteractionEnabledプロパティをNOに設定します。

+0

代わりにあなたが役に立つかもしれないいくつかの他の機能を、失います。だからスクロールを無効にしたいのであれば、これは良い考えではありません。 –

5

注.. Appleが定義されてサブビューの順序についての仮定を作るしようとしています。だから、

あなたはこれを行うことが互換性を維持したい場合:

UIScrollView *scrollView = nil; 
if ([webView respondsToSelector:@selector(scrollView)]) { //iOS 5+ 
    scrollView = webView.scrollView; 
} else { //iOS 4- 
    for(UIView *view in webView.subviews){ 
     if([view isKindOfClass:[UIScrollView class] ]){ 
      scrollView = (UIScrollView *) view; 
      break; 
     } 
    } 
} 
scrollView.scrollEnabled = NO; 
scrollView.bounces = NO; 
scrollView.backgroundColor=[UIColor clearColor]; 
5

だけviewDidLoadに次の行を追加します

myWebView.scrollView.scrollEnabled = NO; 
関連する問題