0

ここで完全に初心者です。スワイプである UIWebview から別の UIWebview への遷移を実装し、各 Webview でスクロール/ズームできるようにする方法を理解しようとしています。

各 webview は、スワイプが検出され、ビュー/コンテンツの境界が画面の対応する端にない限り、すべてのタッチ/ジェスチャに正常に応答する必要があります (ページング スクロール ビューなど)。

私のコンテンツは、データ オブジェクトからの html 文字列です。

ヒントをいただければ幸いです。ありがとう。

4

2 に答える 2

2

UIWebviewをUIScrollviewに配置すると、iPhone3.0では正常に機能するように見えます-'Doh!!!

于 2009-08-13T19:41:07.557 に答える
1

UIWebView を ScrollView に配置する理由があるかもしれませんが、UIWebView でスワイプとスクロールの両方をサポートすることはその 1 つではありません。UIWebView は、ページ上でのスクロールを単独で適切に処理します。それを所有するビュー コントローラーは、次の操作を行うことで、スワイプをサポートして別のコントローラーなどに変更できます。

1) WebView を所有する viewController で、UIGestureRecognizerDelegate メソッドを実装します。

-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gr shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGr
{
    return YES;
}

これにより、webViewController に実装するジェスチャ レコグナイザーが、UIWebView からジェスチャを取得することもできます。それ以外の場合、UIWebView はそれらすべてを消費し、それらをあなたに渡しません。

2) スワイプとページのスクロールを区別するため。UIWebView に追加する実際のジェスチャー レコグナイザーで、「スワイプ」と呼ばれるのに必要なタッチの数を 2 または 3 のように設定します。使用されています。次のようにします。

 UISwipeGestureRecognizer *swipeGR;
 swipeGR = [[[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(handleSwipeLeft)] autorelease];
 swipeGR.direction = UISwipeGestureRecognizerDirectionLeft;
 swipeGR.delegate = self;
 swipeGR.numberOfTouchesRequired = 2;
 [myWebView addGestureRecognizer:swipeGR];
于 2012-03-31T15:56:13.513 に答える