2

私は uipageviewcontroller 内に uiwebview を持っています。ビュー内のテキストを選択できるようにしたいので、userInteractionEnabled を YES に設定しますが、そうするとタップしてページをめくるオプションが失われますが、スワイプは正常に機能します。

UIWebviewでUITapReconizerをトラップしてUIPageviewControllerに渡す最良の方法は何ですか?

ありがとう。

4

2 に答える 2

0

UIPageviewControllerプロパティを持っていますgestureRecognizers

私の推測では、ジェスチャー認識機能とあなたのジェスチャー認識機能 (使用している場合) が同時に動作できない場合です。複数の UITapGestureRecognizers を処理するための質問を参照してください。

このように(テストされていません)

UILongPressGestureRecognizer *yourTapGesture = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(handleLongPress:)];

for(UIGesture *gesture in yourPageController.gestureRecognizers){
   [gesture requireGestureRecognizerToFail:yourTapGesture];
}

[pageControllerTap requireGestureRecognizerToFail:yourTapGesture];

また、なぜ必要なのかわかりません。すべてのスペースを取っていますかuserInteractionEnabled? UIWebViewジェスチャを webView のスーパービューにアタッチし、locationInView:メソッドで webView-hit をテストできます。

于 2013-02-07T15:46:30.193 に答える
0

整理しました。

uiwebview を生成するコントローラーにジェスチャ認識機能を追加しました。

UITapGestureRecognizer *tapRecognizer = [[UITapGestureRecognizer alloc]
                                             initWithTarget:self action:@selector(handleGesture:)];
    tapRecognizer.numberOfTapsRequired = 1;
    tapRecognizer.delegate = self;
    [webView addGestureRecognizer:tapRecognizer];

 - (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch{
    return NO;
 }

そして、pageviewController を追加します。

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer {
    return YES;
}
于 2013-02-08T08:12:21.607 に答える