UIWebView をスクロールしているときに表示されるネイティブのスクロールバー/スクローラーを非表示にしたいのですが、スクロール機能はそのままにしておきます。これは可能ですか?
前もって感謝します、
ウィリアム
この質問には更新された回答が必要なようです:
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 のサブビューに移動する必要はありません。
UIWebView
から直接継承しませんが、サブビューでプロパティUIScrollView
を使用できる場合があります。UIScrollView
UIWebView
[(UIScrollView*)[webview.subviews objectAtIndex:0] setShowsHorizontalScrollIndicator:NO];
[(UIScrollView*)[webview.subviews objectAtIndex:0] setShowsVerticalScrollIndicator:NO];
これが受け入れられるかどうかはわかりませんが、ビルドは問題なく動作するはずです。これがうまくいくかどうかを報告してください。
また、このプロパティを将来の実装に追加するために、 bugreport.apple.comで Apple に機能要求を提出することも検討してください。UIWebView
そのようにしてください:
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;
}
}
ここに答えの始まりがあるようです:
http://discussions.apple.com/thread.jspa?threadID=1781730
ユーザーの操作を無効にすると、スクロールバーが削除されるようです (表示する Web ページが画面の高さを超えていない場合は、これで問題ない可能性があります)。
一種の JavaScript ハックも説明されているようですが、私はそれを習得していません :/ (表示しようとしている Web ページにアクセスする必要がありますが、これはあなたの場合ではないかもしれません....)