2

мне нужно захватить следующие события прикосновения на прошивке и интерпретировать их:Захватив комбинированную кнопку нажать и жест панорамирования

  1. пальца приземления в UIButton (остается вниз)
  2. палец B выполняет жест панорамирования в другом месте на экране, обеспечивая непрерывные обратные вызовы. (Я планирую использовать UIPanGestureRecognizer для реализации этой функции).
  3. Finger подправить в пределах того же UIButton

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

То, что я пытался до сих пор:

  • подключения к UIButton приземлится и Touch Up Внутрь IBActions в моем UIViewController подкласса. У меня также есть
    • Неисправность: Прикосновение вверх Внутри действие не вызывается, когда на экране появляется другой жест, когда нажимается кнопка. Это связано с отменой первоначального касания.
  • Прикрепление UITapGestureRecognizer к UIButton
    • проблема, встречающаяся: Этот только пожары, когда палец покидает экран, поэтому он не может быть использован, чтобы поместить приложение в специальном режиме, пока кнопка нажата.

мне нужно использовать UIButton, а не UIView так, что кнопка имеет правильное поведение выделения для при нажатии.

Каков наилучший общий подход, учитывая проблемы, с которыми я столкнулся до сих пор?

ответ

1

Использование UILongPressGestureRecognizer с коротким minimumPressDuration на «кнопку» http://developer.apple.com/library/ios/#documentation/uikit/reference/UILongPressGestureRecognizer_Class/Reference/Reference.html#//apple_ref/occ/cl/UILongPressGestureRecognizer

Важно, чтобы использовать жест распознавателя делегат, чтобы убедиться, что gestureRecognizer: shouldRecognizeSimultaneouslyWithGestureRecognizer: возвращает YES для этих распознавателей. Затем, когда ваш UIPanGestureRecognizer вызывает обработчик события, вы можете проверить состояние своего UILongPressGestureRecognizer, и если кнопка не нажата, просто игнорируйте жест панорамы.

+1

Я отредактировал свой ответ, возможно, это новое решение поможет. :) – johnyu

+0

Если вы переместите бит «Другая идея» в отдельный ответ, я приму его - делает работу красиво - спасибо! :) –

+0

Просто удалил старую идею. : P Удачи вам в вашем проекте :) – johnyu

 Смежные вопросы

  • Нет связанных вопросов^_^