2012-06-19 20 views
10

Chciałem dowiedzieć się, jak wykonać następujące czynności:UITableView dotknij i przytrzymaj + przeciągnij i upuść

Mam UITableView, który przechodzi w tryb edycji, kiedy krany użytkowników i posiada jeden z wierszy

Raz wchodzi w tryb edycji Potrzebuję komórki, aby pozostała wybrana i dała efekt wyskakiwania, pod palcem użytkownika.

Użytkownik powinien być w stanie przeciągnąć wyskakującą komórkę i zmienić jej położenie w innym rzędzie, nie podnosząc palca.

Co mam już na swoim miejscu:

Mam długo kranu gest rozpoznawania i ustawić stół do edycji w selektorze Rozpoznawania gest długo kranu.

Jednak, aby przeciągnąć komórkę, obecnie potrzebuję podnieść palec i ponownie dotknij, aby przeciągnąć komórkę, co nie jest tym, czego chcę.

Każda pomoc zostanie doceniona.

+0

możliwy duplikat [Reordering UITableView bez kontroli kolejkowania] (http://stackoverflow.com/questions/5624730/reordering-uitableview-without-reorder-control) – Senseful

Odpowiedz

0

W obecnej chwili istnieje obejście (nie jest to łatwe): https://stackoverflow.com/a/7501076/326017.

I znalazłem fragment kodu tutaj: https://github.com/FlorianMielke/FMMoveTableView

„FMMoveTable jest podklasą UITableView, który zapewnia poruszające wiersze po prostu stuknąć i przytrzymać odpowiedni wiersz bez przełączania stół do jego trybu edycji” - z opisem

+0

Prawdopodobnie lepszy fragment tutaj: zobacz https://github.com/bvogelzang/BVReorderTableView. Brak usterki. – SwiftArchitect

0

Wyrób Reordering a UITableViewCell from any touch point omówiono dokładnie ten scenariusz.

Zasadniczo należy wykonać następujące czynności:

  1. Znajdź UITableViewCellReorderControl (prywatną klasę).
  2. Rozwiń, aby obejmowała całą komórkę.
  3. Ukryj to.
  4. Użytkownik będzie teraz mógł przeciągać komórkę z dowolnego miejsca.

Innym rozwiązaniem, Cookbook: Moving Table View Cells with a Long Press Gesture, osiąga ten sam efekt, wykonując następujące czynności:

  1. Dodaj długie naciśnięcie gest rozpoznawania w widoku tabeli.
  2. Utwórz migawkę komórki podczas przeciągania komórki.
  3. Podczas przeciągania komórki przesuń migawkę dookoła i zadzwoń pod numer -[UITableView moveRowAtIndexPath:toIndexPath:].
  4. Po zakończeniu gestu ukryj migawkę komórki.
Powiązane problemy