私は uipageviewcontroller 内に uiwebview を持っています。ビュー内のテキストを選択できるようにしたいので、userInteractionEnabled を YES に設定しますが、そうするとタップしてページをめくるオプションが失われますが、スワイプは正常に機能します。
UIWebviewでUITapReconizerをトラップしてUIPageviewControllerに渡す最良の方法は何ですか?
ありがとう。
私は uipageviewcontroller 内に uiwebview を持っています。ビュー内のテキストを選択できるようにしたいので、userInteractionEnabled を YES に設定しますが、そうするとタップしてページをめくるオプションが失われますが、スワイプは正常に機能します。
UIWebviewでUITapReconizerをトラップしてUIPageviewControllerに渡す最良の方法は何ですか?
ありがとう。
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 をテストできます。
整理しました。
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;
}