Как переместить / изменить порядок ячеек из TableView1 в TableView2 - PullRequest
6 голосов
/ 21 февраля 2011

У меня есть несколько UITableViews с различными источниками данных на экране iPad.

Мне нужно скопировать / переместить ячейку из первого tableView во второй, аналогично тому, как это делается с ListBox на других языках.

Теперь я могу изменить порядок ячеек, но движение ограничено tableView.Я хочу перетащить ячейку в tableView1 и перетащить в tableView2.

PD. Я открыт, чтобы использовать любой другой элемент управления для архивирования.Я смотрю на AQGridView & DTGridView , однако макет основан на столбцах с разными # элементами.Если я могу эмулировать столбцы с этими или другими элементами управления, то я могу принять обходной путь.

ОБНОВЛЕНИЕ:

Я надеюсь, что эти ссылки могут помочь:

Наблюдение за сжатием мультитач-жестов в UITableView

Этосамый близкий ответ:

Перетаскивание между двумя таблицами в ipad

Я знаю, как получить изображение из вида, я могу обнаружить перетаскивание с помощью Gesture Recognizers , поэтому у меня есть все настройки, но я не имею опыта в разработке графики, так что не знаю, как это запустить ...

1 Ответ

2 голосов
/ 22 февраля 2011

Это, безусловно, очень интересный вопрос, и я бы хотел, чтобы у меня было время собрать некоторый тестовый код, чтобы посмотреть, сработает ли идея, которую я собираюсь изложить. Я надеюсь, что это, по крайней мере, укажет вам правильное направление.

UITableViewCell является подклассом UIView, поэтому я бы создал подкласс UITableViewCell, который называется что-то вроде DraggableTableViewCell, чтобы мы могли обрабатывать события касания и затем выполнять следующие шаги:

  1. Создайте экземпляр DraggableTableViewCell и настройте его так, чтобы он отображался как выбранная ячейка.
  2. Добавить новую ячейку как подпредставление представления, которое является общим суперпредставлением для обеих таблиц в том же месте, что и исходная ячейка.
  3. Обновите источник данных для исходного представления таблицы и удалите исходную ячейку из представления таблицы, используя deleteRowsAtIndexPaths:withRowAnimation:
  4. Переместите ячейку на дисплее, отвечая на touchesMoved:withEvent:
  5. Когда получено touchesEnded:withEvent:, убедитесь, что ячейка находится несколько ближе к другому табличному представлению и определите путь индекса, куда вставить новую ячейку
  6. Обновите источник данных для таблицы назначения и вызовите insertRowsAtIndexPaths:withRowAnimation:
  7. Удалите перетаскиваемую ячейку из ее суперпредставления с хорошей анимацией.

Весь этот процесс должен быть организован контроллером представления, который управляет различными представлениями таблицы на экране.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...