Meine Anwendung hat zwei überlappende UIButtons. Die obere Schaltfläche kann manchmal deaktiviert sein. In diesem Fall scheinen jedoch alle Berührungsereignisse, die er empfängt, an die darunter liegende Ansicht weitergeleitet zu werden, was in meinem Fall die andere Schaltfläche ist.Verhindern, dass UIButton Berührungsereignisse ausgibt
Was ich brauche, ist die obere Taste, die alle Berührungen abfängt und verhindert, dass sie die untere Taste erreichen, selbst im deaktivierten Zustand (ich würde mich freuen, selbst wenn die bestimmte Aktion im deaktivierten Zustand aufgerufen wird).
Bisher habe ich versucht:
[topButton setUserInteractionEnabled:YES];
und
[topButton setExclusiveTouch:YES];
obwohl der spätere Fall ist wahrscheinlich unerwünscht, da ich immer noch die untere Schaltfläche auf Ereignisse reagieren müssen, wenn es die erste Ansicht ist angeklickt. So oder so funktioniert keiner von ihnen.
Sieht aus wie diese Methoden nicht aufgerufen werden, wenn die Schaltfläche deaktiviert ist. –
Ja, das ist, was ich dachte (weshalb ich "eine Eigenschaft" sagte), weshalb Sie entweder die zweite Methode verwenden müssen oder etwas anderes tun müssen, als die Schaltfläche zu deaktivieren. Die zweite Methode wird wahrscheinlich schmerzhaft sein, da die UIApplication (die sendEvent im Fenster aufruft) wahrscheinlich das ist, was deaktivierte UIControls ignoriert. – Nimrod