Еще один вопрос о перетаскивании на iPhone

StackOverflow https://stackoverflow.com/questions/2468824

  •  20-09-2019
  •  | 
  •  

Вопрос

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

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

Я попытался добавить события touchesMoved/Began/Ended в viewCell.Они не загораются, когда я перетаскиваю плитку на нее (другими словами, плитка скрывает часть viewCell под моим пальцем).Их увольняют, когда сверху не перетаскивают плитку.

Есть ли для этого эффективный метод определения попаданий?

Спасибо.

Это было полезно?

Решение

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

  • В общем, перетаскивание на iPhone — ПЛОХАЯ идея.Это очень сложно сделать, и получить обратную связь будет проблематично, потому что ваш палец будет мешать операции перетаскивания.
  • использование выбранной ячейки таблицы для указания «возможности удаления» может привести к отклонению вас рецензентами магазина приложений;это означает «Я выбрал эту ячейку», а не «Я что-нибудь в нее брошу»

Тем не менее, вы, вероятно, захотите управлять всеми событиями касания в «исходном» представлении и отправлять сообщения таблицы оттуда, а не пытаться манипулировать сообщениями.Как только ваш -touchesBegan:withEvent:был вызван в одном представлении, все последующие -touchesMoved:withEvent:и -touchesEnded:withEvent:будет отправлено этому представлению на протяжении всего жизненного цикла этого касания;их пересылка запутает всех участников.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top