Еще один вопрос о перетаскивании на iPhone - PullRequest
0 голосов
/ 18 марта 2010

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

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

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

Существует ли эффективный метод для этого?

Спасибо.

1 Ответ

0 голосов
/ 18 марта 2010

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

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

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

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