2012-04-12 3 views
0

Mit meinem aktuellen Tabellenansicht-Controller möchte ich eine Touch-and-Hold-Funktion implementieren, die der Funktionsweise der On-The-Go-Warteschlangenfunktion des Click-Wheel-iPods sehr ähnlich ist.Erkennen Sie berühren und halten mit UITableViewCell, was sind meine Optionen?

Ich habe ein paar Beiträge gelesen und habe Vorschläge zur Verwendung von UILongPressGestureRecognizer gesehen. Während ich das tun könnte, ist es noch ein paar Fragen für mich bringen:

  1. Wenn ein langer Druck festgestellt wird, wie kann ich die didSelectRowAtIndexPath Methode wird aufgerufen verhindern (Oder muss ich vollständig vermeiden es mit und Umsetzung einer Tap Geste Erkenner in meine UITableViewCell Unterklasse?)
  2. Wie würde ich mich über die Zelle einmal lang drücken animieren wurde ähnlich dem iPod Stil erkannt wird (wo die markierten Zelle Blitze/Opazität von Highlight geht ein paar Mal hoch und runter).

Würde ich einige Anleitung zu schätzen wissen.

Antwort

1

Wenn Sie die Erkennung lange drücken, und es wird ausgelöst, didSelectRowAtIndexPath wird nicht ausgelöst.

Sie können den Status der Gestenerkennung erkennen und Ihre Zelle animieren, nachdem der Status "Start" erkannt wurde, und die Animation beenden, wenn der Status "Ende" erkannt wird.

if (gestureRecognizer.state == UIGestureRecognizerStateBegan) ... if (gestureRecognizer.state == UIGestureRecognizerStateEnded) ...

+0

Gibt es eine Weise, die ich von Begann zu Ended Scrollen deaktivieren? – sooper

+0

Ich glaube, das ist das Standardverhalten. Probier es aus und lass es uns wissen! Ist dies nicht der Fall, implementieren Sie die Delegate-Methode "shouldRecognizeSimultouslyWithGestureRecognizer" von Gestenerkennung, um NO zurückzugeben, und die Gestenerkennung der Bildlaufansicht wird blockiert. – samson

Verwandte Themen