Ich habe ein Problem festgestellt, bei dem meine Schaltfläche "gedrückt" bleiben sollte, während Popover angezeigt wird, das von ihr aufgerufen wurde. Popover ist die Auswahl für einige Filter und der Filter wird auf der Schaltfläche selbst angezeigt. Wenn ich darauf tippe und es Popover anzeigt, wird es auf jeden Fall abgewählt.
Ich denke, ich muss das Verhalten bei Berührungsereignissen neu definieren und dafür sorgen, dass es nicht auf Standard reagiert touch up inside
. Dann habe ich mich gefragt, wofür andere Ereignisse verantwortlich sind. Aber ich konnte keine Ereignisliste in der iOS-Bibliothek finden und in StackOverflow gibt es nur Fragen zum falschen Verhalten von touch up inside
oder touch down
.
Was ist der Unterschied zwischen Touch-Events?
- Touch Cancel - Wenn Sie die Taste berühren, aber Ihren Finger wegbewegen und die Auswahl aufgehoben bleibt?
- Aufsetzen - direkt beim Tippen.
- Aufsetzen wiederholen?
- Touch Drag Enter?
- Touch ziehen beenden?
- Touch Drag Inside?
- Berühren Sie ziehen nach draußen?
- Nachbessern im Inneren - wenn Sie auf die Schaltfläche tippen und sie loslassen, bleibt sie in ihren Grenzen. Es ändert den UIButtons-Status in Normal.
- Draußen nachbessern - wenn Sie auf die Taste tippen und sie loslassen, ohne die Grenzen zu überschreiten?
andere IBActions werden nicht von UIButton gesendet, oder? Wie verändern diese Ereignisse auch das Erscheinungsbild von UIButton? Wie highlighted
oder selected
?
Ich würde mich über einen Link zu einem guten Artikel über IBActions freuen, da ich ihn nicht finden konnte.
quelle
Antworten:
Aus Apples Dokument für
UIControlEvents
:quelle
DragEnter
undDragInside
sind sehr ähnlich?Aufgeführt in, was ich in Betracht ziehen würde, Reihenfolge der allgemeinen Verwendung / Wahrscheinlichkeit des Auftretens für eine normale Schaltfläche:
UIControlEventTouchDown : Der Benutzer hat auf die Schaltfläche getippt . Dies wird auf den Kontakt zwischen Finger und Stift ausgelöst.
UIControlEventTouchUpInside : Der Benutzer hat auf die Schaltfläche getippt . Dies wird durch den vom Bildschirm zurückgezogenen Finger / Stift-Kontakt ausgelöst.
Nützlich für Schieberegler und Drag-Events wie das Verschieben einer Komponente. Die folgenden sind in der Reihenfolge ihres Auftretens:
UIControlEventTouchDragInside : Wird ausgelöst, wenn sich der Finger in den Tastenbereich zieht.
UIControlEventTouchDragExit : Wird während einer Ziehbewegung ausgelöst. Es wird nur einmal aufgerufen, da der Finger / Stift des Benutzers die Grenzen der Schaltfläche verlässt.
UIControlEventTouchDragOutside : Wird während einer Ziehbewegung nach 'UIControlEventTouchDragExit' ausgelöst und wird kontinuierlich aufgerufen , solange die ursprüngliche Berührung fortgesetzt wird.
UIControlEventTouchUpOutside : Dies ist einfach der Finger / Stift, der angehoben wird, ABER nur, wenn sich der Finger / Stift nicht mehr innerhalb der Grenzen der Schaltfläche befindet. Das Wichtige (und wahrscheinlich offensichtlich) ist, dass sich die Berührung irgendwann innerhalb der Schaltfläche befunden haben muss, um dieses Ereignis mit der Schaltfläche zu verknüpfen.
Hinweis: Nach meinem Verständnis kann das oben Genannte hilfreich sein für:
Andere Ereignisse:
UIControlEventTouchCancel : Etwas außerhalb der Kontrolle des Benutzers bricht seine Berührungsaktion ab. Stellen Sie sich das als etwas vor, das auf der Telefonseite "schief geht".
UIControlEventTouchDownRepeat : Möchten Sie erkennen, wann Ihr Benutzer verrückt ist und wütend auf eine Schaltfläche tippen? Möchten Sie feststellen, ob sie sich noch im Windows-Modus befinden und versuchen, einen Doppelklick auszuführen? Oder vielleicht haben Sie eine Schaltfläche entworfen, um etwas anderes zu tun, wenn sie zweimal tippen. Diese Veranstaltung hilft bei all diesen!
Verweise:
SO 1 : Unterschied zwischen UIControlEventTouchDragOutside und UIControlEventTouchDragExit
SO 2 : Was ist UIControlEventTouchCancel?
quelle