Передача сенсорного жеста - PullRequest
2 голосов
/ 11 января 2012

Я ищу решение, которое поможет "передать" жест касания.

По сути, у меня есть меню, и я хочу, чтобы пользователи могли перетаскивать элементы из меню на холст.в одном непрерывном перетаскивании.

Я уже достиг перетаскиваемого изображения с помощью жестов панорамирования (мы будем называть эти экземпляры спрайтами).Я также могу создать экземпляр Sprite в любом месте UIView с помощью кнопки или UIImageView с помощью сенсорных жестов.

Однако в настоящее время для этого требуется два касания.Один, чтобы коснуться кнопки пункта меню и отпустить, создавая Sprite.Второй касаться спрайта, позволяя пользователю перетащить его, а затем отпустить, где он хочет.Я хотел бы объединить эти прикосновения, чтобы, когда пользователь касается элемента меню, экземпляр Sprite создавался и уже находился в пределах жеста панорамирования, или что-то в этом роде.

Я приложил визуальное описание, если это помогает,Любая помощь приветствуется.Спасибо!

enter image description here

1 Ответ

4 голосов
/ 11 января 2012

Нет способа искусственно заставить UIGestureRecognizer распознавать касания, которые передаются в другое представление.

Из документов распознавателя жестов:

Доставка событий изначально идет по обычному пути: от операционной Система к объекту приложения к объекту окна, представляющего окно, в котором происходят прикосновения. Но перед отправкой события в проверенном на удар виде объект окна отправляет его на жест распознаватель, прикрепленный к этому представлению или к любому из подвидов этого представления. Рисунок 3-1 иллюстрирует этот общий путь с цифрами, указывающими порядок получения касаний.

Рисунок 3-1

enter image description here

Доставка события происходит автоматически системой и доставляется в соответствующий вид.

Чтобы сделать то, что вы хотите, я бы реализовал UIGestureRecognizer в подпредставлении (представление, которое содержит ваш UIButton) и при печати создал экземпляр вашего объекта Sprite и манипулировал этим объектом с помощью распознавателя жестов подпредставления. В качестве альтернативы вы можете использовать -(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)even, чтобы изменить положение объекта самостоятельно.

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