editActionsForRowAtIndexPath ohne extra Klick auslösen

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • editActionsForRowAtIndexPath ohne extra Klick auslösen

    Mit editActionsForRowAtIndexPath und UITableViewRowAction lassen sich ja leicht zusätzliche Aktionen über einen nach-links-Swipe für Tabellenzellen hinzufügen. In meinem Fall gibt es nur eine Aktion und die ist einfach ein Schalter an/aus (Favorit ja/nein) für das Element. Momentan habe ich es so implementiert, dass die RowAction je nach Status der Zelle als Text Favorit oder kein Favorit ausgibt und der Nutzer jeweils auf den Button klickt.

    Meine Frage ist jetzt, ob man das – mit iOS-Bordmitteln und ohne eine extra Implementierung wie bspw. bei SWTableViewCell – so realisieren kann, dass der Button gar nicht gerückt wird und die Aktion direkt ausgelöst wird, wenn der Nutzer die Zelle entsprechend weit gewischt hat? Ich will also mit einem Wischen nach links jeweils den Status an- und ausschalten, ohne den erscheinenden Action-Button extra anklicken zu müssen.

    Irgendeine Idee, wie das gehen kann? Ein Event, welches mich benachrichtigt, wenn der Action-Button vollständig angezeigt wird, habe ich leider nicht gefunden und daher fehlt mir auch der Ansatz, wie ich vorgehen könnte.

    Gruß
    So Long, and Thanks for All the Fish.
  • Hmm, ich weiß nicht, ob das so eine gute Idee ist: Mich würde es als Benutzer verwirren, wenn ich diese Standard-Interaktion ausführe und statt eines Buttons plötzlich schon eine Aktion ausgelöst hätte. Nur mal als Hinweis...

    Zur konkreten Frage: Schon mal geschaut, wann "editActionsForRowAtIndexPath" aufgerufen wird? Das passiert genau dann, wenn der Benutzer wischt, d.h. das könntest Du als Triggerpunkt hernehmen. Allerdings würde ich mich mal schlau machen, ob das Verhalten irgendwie seitens Apple dokumentiert ist, ansonsten kannst Du in der nächsten iOS-Version auf die Nase fallen.

    ciao

    gandhi
  • Nun ja, mit einem Wisch nach rechts verwendet ja selbst Apple bspw. in der Mail-App genau so was um eine E-Mail als gelesen/ungelesen zu markieren. Viele andere App wie bspw. Reeder nutzen das auch für ähnliche Zwecke. Ich denke also nicht, dass das jemanden verwirren würde.

    Bei editActionsForRowAtIndexPath schon zu reagieren geht nicht, da das ja direkt zu Beginn des Wischens aufgerufen wird und die Aktion erst dann ausgeführt werden soll, wenn eine Trigger-Strecke überschritten wurde. Vom Prinzip bräuchte ich ein Event, was genau dann aufgerufen wird, wenn der entsprechende Action-Button vollständig angezeigt wird. Da kann ich in der Doku aber nichts finden.

    Gruß
    So Long, and Thanks for All the Fish.
  • Babelfisch schrieb:

    Nun ja, mit einem Wisch nach rechts verwendet ja selbst Apple bspw. in der Mail-App genau so was um eine E-Mail als gelesen/ungelesen zu markieren. Viele andere App wie bspw. Reeder nutzen das auch für ähnliche Zwecke. Ich denke also nicht, dass das jemanden verwirren würde.

    Bei editActionsForRowAtIndexPath schon zu reagieren geht nicht, da das ja direkt zu Beginn des Wischens aufgerufen wird und die Aktion erst dann ausgeführt werden soll, wenn eine Trigger-Strecke überschritten wurde. Vom Prinzip bräuchte ich ein Event, was genau dann aufgerufen wird, wenn der entsprechende Action-Button vollständig angezeigt wird. Da kann ich in der Doku aber nichts finden.

    Gruß
    Sowas z.B.?

    raywenderlich.com/62435/make-s…t-going-nuts-scroll-views
  • Nein, denn genau das habe ich ja und danke iOS 8 ist das ja auch kein Problem. Ich möchte halt aber den extra Klick auf den Button ersparen, da es ja sowieso nur eine Aktion gibt und wie bspw. bei der Apple Mail-App beim Wischen nach rechts¹ jeweils des Status (bei Apple gelesen/ungelesen, bei mir Favorit/kein Favorit) umschalten können.

    ¹) Ob ich bei mir nun nach links oder rechts wische, ist eigentlich egal.
    So Long, and Thanks for All the Fish.