0

View と他の 3 つの View がありますが、質問に関連するのは viewPushDatum View だけです。viewPushDatum が画面上にあり、そのどこかをタップしても何も起こらず、正常に動作しますが、viewPushDatum に UIDatePicker もあり、それをクリックするとビューが消えます。viewPushDatum を非表示にすることになっている UIGestureRecognizer が 1 つありますが、このビューの外側で何かがクリックされたときにのみ viewPushDate を非表示にしたいと考えています。以下の関数に touch.view == myUIDatePicker を追加しようとしましたが、これは機能せず、 touch.accessibilityFrame を試しましたが、機能しませんでした。ジェスチャRecognizerがviewPushDatumの外でのみ呼び出されるようにコードを変更する方法を知っている人はいますか?

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch {

    if (touch.view == viewPushDatum) {
        return NO;
    } else {
        return YES;
    }
}
4

2 に答える 2

1

ビュータグを使ってみましたか? すべてのビューにタグを設定できます。if (touch.view.tag == viewPushDatumTag) // viewPushDatumTag は #define にすることができます

于 2013-11-04T22:02:32.163 に答える