18

UIWebView をスクロールしているときに表示されるネイティブのスクロールバー/スクローラーを非表示にしたいのですが、スクロール機能はそのままにしておきます。これは可能ですか?

前もって感謝します、

ウィリアム

4

6 に答える 6

38

この質問には更新された回答が必要なようです:

Web ビューに関連付けられたスクロール ビューに直接アクセスできます。(読み取り専用) iOS 5.0 以降。開発者は、例外的な状況でない限り、iOS 5.0 より前のものをサポートすべきではないと思います。

Apple 開発者ドキュメントから。

@property(nonatomic, readonly, retain) UIScrollView *scrollView
Discussion
Your application can access the scroll view if it wants to customize the scrolling behavior of the web view.

Availability
Available in iOS 5.0 and later.
Declared In
UIWebView.h

これで、次のように直接書くことができます。

webView.scrollView.showsHorizontalScrollIndicator = NO;
webView.scrollView.showsVerticalScrollIndicator = NO;

webView のサブビューに移動する必要はありません。

于 2013-07-04T12:52:17.240 に答える
11

UIWebViewから直接継承しませんが、サブビューでプロパティUIScrollViewを使用できる場合があります。UIScrollViewUIWebView

[(UIScrollView*)[webview.subviews objectAtIndex:0] setShowsHorizontalScrollIndicator:NO];
[(UIScrollView*)[webview.subviews objectAtIndex:0] setShowsVerticalScrollIndicator:NO];

これが受け入れられるかどうかはわかりませんが、ビルドは問題なく動作するはずです。これがうまくいくかどうかを報告してください。

また、このプロパティを将来の実装に追加するために、 bugreport.apple.comで Apple に機能要求を提出することも検討してください。UIWebView

于 2009-05-11T20:29:47.673 に答える
5

そのようにしてください:

for (id subview in self.myWebView.subviews) {
    if ([[subview class] isSubclassOfClass: [UIScrollView class]]) {
        ((UIScrollView *)subview).bounces = NO; 
        ((UIScrollView *)subview).showsVerticalScrollIndicator = NO;    
        ((UIScrollView *)subview).showsHorizontalScrollIndicator = NO;  
    }
}
于 2012-03-21T16:22:22.820 に答える
-1

ここに答えの始まりがあるようです:

http://discussions.apple.com/thread.jspa?threadID=1781730

ユーザーの操作を無効にすると、スクロールバーが削除されるようです (表示する Web ページが画面の高さを超えていない場合は、これで問題ない可能性があります)。

一種の JavaScript ハックも説明されているようですが、私はそれを習得していません :/ (表示しようとしている Web ページにアクセスする必要がありますが、これはあなたの場合ではないかもしれません....)

于 2010-03-11T18:05:51.657 に答える