1

テーブル ビューの上にテキスト フィールドがあります。また、テキスト フィールドがフォーカスされるたびに、スワイプ ジェスチャが登録されます。スワイプ ジェスチャが認識されると、キーボードが閉じられます。コードは、スワイプアップジェスチャが機能しないことを除いて、すべてのジェスチャで機能しています。これは私のコードです

swipe = [[UISwipeGestureRecognizer alloc]
         initWithTarget:self action:@selector(dismissKeyboard)];

[swipe setDirection:UISwipeGestureRecognizerDirectionUp];

何か問題があれば誰か教えてください。

4

3 に答える 3

0

スクロールビューのジェスチャーの 1 つと衝突する可能性はありますか? 他のジェスチャーが機能している可能性は低いと思われますが、少なくとも UIGestureRecognizerDelegate プロトコルのgestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer: メソッドを試す価値はあるでしょう。

于 2013-06-25T23:41:30.257 に答える
0

このケースについてはわかりませんが、カスタム コンテナー ビューでジェスチャを行ってから、独自のジェスチャを含む子ビューを追加したときに、子のジェスチャを反復処理して、要求するように指示する必要があったことは知っています。私のジェスチャーは失敗します(つまり、私のジェスチャーが優先されます)。私はスクロールビューでこれを成功させました:

for (UIGestureRecognizer *gesture in self.scrollView.gestureRecognizers)
{
    [gesture requireGestureRecognizerToFail:myGesture];
}

私が問題を抱えたのは、編集モードに出入りするときにジェスチャーを削除および追加する UITextView のようなビューだけなので、面倒です。

また、標準のジェスチャーでこれを試しましたが、その後、できるだけ早く失敗するようにプログラムしたカスタム ジェスチャーに移行しました (開始位置を確認し、ジェスチャーが必要とする方向をサポートしない場合はすぐに失敗します。たくさんの人touchesMovedが同じ結論に達するのを待つよりも)。子ビューのジェスチャを妨げたくない場合は、自分のジェスチャをできるだけ積極的に失敗させてください。これはスワイプ ジェスチャの問題ではないかもしれませんが、ジェスチャによって子ビューの動作が著しく変化することが判明した場合は、考慮すべき問題です。

しかし、おそらく、どのビューがあなたのジェスチャーに干渉しているジェスチャーを持っているかを理解し、最初にあなたのジェスチャーが失敗することを要求する必要があると思います.

于 2013-06-25T22:46:35.500 に答える