0

UIWebView のデフォルトのサブビューである UIScroller クラスにアクセスする方法を知っている人はいますか?

webview 内のタッチ、ズーム、パン、スクロール機能を処理したい。

ありがとう..

4

2 に答える 2

2

このスレッドが古いことは知っていますが、誰かがそれに出くわした場合、新しい方法があります.

iOS 5 の時点で、置き換えることはできませんが、そのプロパティを設定できるというプロパティがありますUIWebView。ほとんどの人は、ズーム/バウンス/スクロールをすべて一緒に無効にしたいだけです。これは、scrollViewたとえば次の場合に scrollView のプロパティを設定することで実行できます。webviewUIWebView

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

于 2012-05-02T19:01:00.353 に答える
1

これは、次のようにして見つけることができます。

[webview objectAtIndex:0]

そこにあるはずです。そうでない場合は、これをコードのどこかに置き、プログラムを実行して UIScroller のインデックスを検索し、上記の 0 をそのインデックスに置き換えます。

for (UIView *subview in [webView subviews]){
    NSLog(@"subviews  of webView : %@", [[subview class] description]);
}
于 2009-07-23T16:01:26.423 に答える