/ / Wie kann man Berührungsereignisse global abfangen? - iPhone

Wie kann man Berührungsereignisse global abfangen? - iPhone

Ich habe eine Sichtweise, die manchmal von anderen Ansichten eingenommen wird. Wenn der Benutzer jedoch den Finger über den Bildschirm gleiten lässt, möchte ich auch die darunter liegende Ansicht über den Bildschirm verschieben.

Ich könnte damit beginnen, benutzerdefinierte Ansichten für all diese zu erstellenSubviews abdecken und alle Arten von Berührungsereignissen weiterleiten, aber das ist etwas umständlich. Vielleicht gibt es irgendeine Art von Benachrichtigung oder eine andere Art, wie eine UIView- oder UIControl-Unterklasse Berührungen erfahren kann, die gerade passieren, egal wo sie sind.

Zusamenfassend: Ich brauche eine UIView-Unterklasse oder UIControl-Unterklasse, die über alle Berührungsereignisse auf dem gesamten Bildschirm informiert ist. Oder zumindest, wenn es nicht möglich ist, über Berührungen zu wissen, die über sich selbst in der gleichen zugrunde liegenden Superansicht stattfinden.

Eine andere Beschreibung: Es gibt 20 Ansichten, alle befinden sich in der gleichen Superview. Die erste Sicht wird von 19 anderen abgedeckt. Wenn der Benutzer jedoch über den Bildschirm gleitet, muss auch die erste Ansicht verschoben werden, sodass Touch-Ereignisse berücksichtigt werden müssen.

Gibt es eine bessere Lösung, um alle 19 Ansichten Touch-Events zu machen? (Ja, alle 19 Ansichten reagieren auf Berührungsereignisse in diesem Beispiel)

Antworten:

1 für die Antwort № 1

Vielleicht der hitTest:withEvent: Methode von UIView wird helfen, es hat mir geholfen zu erreichen, was Sie in der Vergangenheit versuchen.