UIWebView のデフォルトのサブビューである UIScroller クラスにアクセスする方法を知っている人はいますか?
webview 内のタッチ、ズーム、パン、スクロール機能を処理したい。
ありがとう..
UIWebView のデフォルトのサブビューである UIScroller クラスにアクセスする方法を知っている人はいますか?
webview 内のタッチ、ズーム、パン、スクロール機能を処理したい。
ありがとう..
このスレッドが古いことは知っていますが、誰かがそれに出くわした場合、新しい方法があります.
iOS 5 の時点で、置き換えることはできませんが、そのプロパティを設定できるというプロパティがありますUIWebView
。ほとんどの人は、ズーム/バウンス/スクロールをすべて一緒に無効にしたいだけです。これは、scrollView
たとえば次の場合に scrollView のプロパティを設定することで実行できます。webview
UIWebView
webview.scrollView.bounces = NO; //Disables webview from bouncing
webview.scrollView.minimumZoomScale = webview.scrollView.maximumZoomScale = 1.0; //Forces zoom to be at 1 (can be whatever you fancy) and disables zooming
webview.scrollView.bouncesZoom = NO; //Disables bouncing when zooming exceeds minimum or maximum zoom
より多くの制御が必要な場合は、scrollView のデリゲートを設定できると思いますが、安全のために、元のデリゲートを保存し、カスタム デリゲートでそのメソッドを適切に呼び出すことをお勧めします。
scrollView を置き換えて独自のハンドラーを提供することはできないため、タッチの処理はより困難になります。あなたができる最善のことは、の一部としていくつかのジェスチャ認識機能を追加し、そこでそれらを処理しようとすることですが、それでもイベントを受け取るUIView
と思います. UIWebView
また、iOS 5 では、直接ジェスチャ認識機能にアクセスできますUIScrollView
。
これは、次のようにして見つけることができます。
[webview objectAtIndex:0]
そこにあるはずです。そうでない場合は、これをコードのどこかに置き、プログラムを実行して UIScroller のインデックスを検索し、上記の 0 をそのインデックスに置き換えます。
for (UIView *subview in [webView subviews]){
NSLog(@"subviews of webView : %@", [[subview class] description]);
}