Начало движения touchsMoved/UIPanGestureRecognizer в середине хода для нового представления

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

  1. значок имеет сенсорное событие
  2. добавить прозрачный весь экран UIView и вставить UIImageView, содержащий значок на нем.
  3. отслеживать touchMoves или uiPanGestureRecognizer и перемещать UIImageView до тех пор, пока

Проблема в том, что touchMoves (и uiPanGestureRecognizer) не отслеживают, пока пользователь не поднимает палец и не опускает его обратно. то есть то, что происходит:

  1. значок имеет сенсорное событие
  2. добавить прозрачный весь экран UIView и добавить подпредставление UIImageView, содержащее значок на нем.
  3. пользователь тащит палец и ничего не происходит, поэтому они поднимают палец и снова тянут
  4. отслеживать touchMoves или uiPanGestureRecognizer и перемещать UIImageView до тех пор, пока

По-видимому, для того, чтобы UIView мог распознать перетаскивание, он, похоже, должен быть создан внутри UIView. Я пытался (наивно) просто отправить событие приземления в прозрачный вид, но оно не работает.

Есть другие идеи?

большое спасибо...

2 ответа

Хитрость заключается в том, чтобы использовать один UIPanGestureRecognizer. Добавьте один к своему оригинальному значку (UIView) и используйте его, чтобы обнаружить начальное прикосновение и начало кастрюли. Когда UIPanGestureRecognizer входит в UIGestureRecognizerStateBegan, создайте представление, которое будет анимировать перетаскивание. Исходный вид значка и обработчик будут продолжать получать обратные вызовы. Вы можете проверить UIGestureRecognizerStateChanged и перевести новый движущийся вид из исходного обработчика.

Насколько я могу судить, вы не можете начать перетаскивание с любого вида, кроме того, на котором было инициировано перетаскивание. Для тех, у кого есть доступ, взгляните на проект автоматической прокрутки WWDC 2010. Они в основном начинают перетаскивание в представлении ячейки таблицы, а затем позволяют перетаскивать эту TableCell из представления таблицы. Это работает хорошо и, вероятно, будет тем маршрутом, по которому я буду идти.

Другие вопросы по тегам