Перетащите между двумя таблицами в IPad - PullRequest
6 голосов
/ 12 октября 2010

У меня есть два UITableView в моем приложении для iPad. Я хочу перетащить ячейку из одной таблицы и перейти в другую таблицу. Пожалуйста, предложите мне какую-нибудь идею, как я могу реализовать перетаскивание между двумя таблицами в iPad?

Заранее спасибо

Ответы [ 4 ]

2 голосов
/ 07 декабря 2013

Я реализовал решение до этого.

Подход

  • Основным компонентом решения является класс, который прослушивает события перетаскивания.и передает их делегату;Я назвал этот компонент gesture coordinator.Он обрабатывает события, генерируемые из UIGestureRecognizer, чтобы вычислить состояние «перетаскивания» и уведомить делегата.
  • Например, контроллер представления, действующий в качестве его делегата, будет получать сообщения о том, когда элементы были обменены между коллекциями, а затем обновлять свои представления коллекции и источники данных.
  • Координатор жестов по сути является простооформитель перетаскивания для UIGestureRecognizer.

Логика координатора жестов

Вот предложения, которые я учел при реализации координатора жестов:

  • Коллекция - это представление, которое содержит и массив дочерних элементов.
  • Арена перетаскивания состоит из суперпредставления и упорядоченного набора коллекций, которые существуют как подпредставления в этом суперпредставлении.
  • Порядок коллекций на арене перетаскивания определяет их приоритет перетаскивания.То есть, если коллекция находится в начале упорядоченного набора коллекций арены перетаскивания, то перетаскивания, встречающиеся в этой коллекции, будут распознаваться вместо любой из более поздних коллекций в наборе.
  • Перетаскиваниезапускается тогда и только тогда, когда жест запускается в пределах перетаскиваемого элемента коллекции на арене перетаскивания.Перетаскивание происходит тогда и только тогда, когда сразу после начала перетаскивания положение жеста изменяется в пределах области перетаскивания.
  • Перетаскивание прекращается тогда и только тогда, когда сразу после перетаскивания жеста останавливается, отменяется или заканчивается.
  • Удаление происходит тогда и только тогда, когда перетаскивание останавливается в точке, которая указана как удаляемая.Например, пользователь может назначить определенные границы в области перетаскивания областями «Удалить при перетаскивании».
  • Перегруппировка происходит тогда и только тогда, когда перетаскивание останавливается в пределах границ коллекции, в которой оно началось, придругой элемент в этой коллекции, который указан как переставляемый, и в точке на арене перетаскивания, которая не указана как удаляемая.
  • Падение происходит тогда и только тогда, когда перетаскивание останавливается в пределах границ другого объекта.коллекция на арене перетаскивания, на определенный элемент или точку, которая указана как подлежащая удалению в пределах этой коллекции, и на точке на арене перетаскивания, которая не указана как удаляемая.

Ссылки

1 голос
/ 22 июня 2018

Теперь вы можете сделать это с помощью dragDelegate и dropDelegate UITableView из iOS11

1 голос
/ 16 января 2011

Как только вы коснетесь строки в одной таблице ... Вы должны создать изображение строки, которую хотите перетащить

Это можно сделать, отредактировав функцию didSelectRowAtIndexPath, из которой вы можете определить, какая строка была выбрана.

затем переместите это изображение вместе с вашим перетаскиванием (путем пользовательской реализации касаний: перемещено)

CGPoint жест точки = [touch locationInView: self.view];

imageview.centre = точка жеста;

0 голосов
/ 18 апреля 2013

Несколько шагов:

  1. Добавить распознаватель жестов длинного нажатия, когда он обнаружен, получить UIImage из ячейки, которую вы нажали.
  2. Удалить ячейку из табличного представления (deleteRowsAtIndexPaths: withRowAnimation :). Создан UIImageView с помощью UIImage, полученного на шаге 1. Перемещайте UIImageView при перемещении пальца.
  3. Когда закончится жест, определите вид таблицы, который нужно отбросить, и место для вставки. Затем добавьте выбранные данные в источник данных (insertRowsAtIndexPaths: withRowAnimation:).
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...