У меня есть метод обработчика для UIPinchGestureRecognizer, который используется для масштабирования вида. То, что я пытаюсь сделать, это сделать так, что, хотя два касания находятся на экране для жест щепотки, и если палец будет поднят, оставшийся палец будет управляться распознающим жесты. Есть какой-либо способ сделать это? Я не могу придумать правильный способ передать один жест от одного обработчика к другому.Как перевести жест из обработчика UIPinchGestureRecognizer в обработчик UIPanGestureRecognizer?
1
A
ответ
0
Это должно быть довольно легко. Создайте два распознавателя жестов. UIPinchGestureRecognizer и UIPanGestureRecognizer. Не забудьте стать делегатом обоих!
pinchRecognizer = [[UIPinchGestureRecognizer alloc] initWithTarget:self action:@selector(scaleHandler:)];
[pinchRecognizer setDelegate:self];
[pinchRecognizer setDelaysTouchesBegan:NO];
[pinchRecognizer setDelaysTouchesEnded:NO];
[pinchRecognizer setCancelsTouchesInView:NO];
panRecognizer = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(panHandler:)];
[panRecognizer setMaximumNumberOfTouches:2];
[panRecognizer setMinimumNumberOfTouches:1];
[panRecognizer setDelegate:self];
[panRecognizer setDelaysTouchesBegan:NO];
[panRecognizer setDelaysTouchesEnded:NO];
[panRecognizer setCancelsTouchesInView:NO];
Теперь реализуем следующий метод делегата жестов.
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer{
return YES;
}
Это сделает оба обработчики срабатывать, так что, когда вы отпустите один из пальцев он будет ПАН, но когда у вас есть оба это зажать.
Смежные вопросы
- 1. UIPanGestureRecognizer конфликтует с надписью UIPinchGestureRecognizer
- 2. iOS - UIPinchGestureRecognizer & UIPanGestureRecognizer - Сброс
- 3. Конфликт UIPanGestureRecognizer (3 пальца) и UIPinchGestureRecognizer
- 4. исключить subview из UIPinchGestureRecognizer
- 5. Отменить обработчик жест временного
- 6. Жест 4-пальцевой многозадачности активирует UIPinchGestureRecognizer gesture
- 7. UIPinchGestureRecognizer
- 8. Как вызвать обработчик express.js из другого обработчика
- 9. Как определить или определить ориентацию жест щепотки с помощью UIPinchGestureRecognizer?
- 10. UIPanGestureRecognizer на UITableViewCell перекрывает вид прокрутки жест распознаватель UITableView в
- 11. Обработчик обработчика магистралей не работает
- 12. Как сбой UILongPressGestureRecognizer для UIPanGestureRecognizer?
- 13. Панорамный жест беспорядочно направлен на направление вращения
- 14. Как перевести жест в сторону назад к предыдущему виду ios?
- 15. Объединить longpress жест и жест перетаскивания вместе
- 16. Обработчик обработчика последней кадры MovieClip
- 17. обработчик сигнала против обработчика событий
- 18. UITapGestureRecognizer interefering с UIPinchGestureRecognizer
- 19. Обработчик обработчика сценария не работает
- 20. Как создать обработчик события для обработчика событий?
- 21. Почему следующий обработчик идентифицирован как 404 обработчика
- 22. UIPanGestureRecognizer + UIViewController
- 23. Как вызвать обработчик по умолчанию из обработчика события
- 24. Отключение UIPinchGestureRecognizer с setEnabled: NO
- 25. Как использовать масштабирование (UIPinchGestureRecognizer) для изменения ширины UITextView?
- 26. Пропустите жест на View устроит по оси г
- 27. Начальная точка UIPanGestureRecognizer выключена
- 28. Как добавить вертикальный жест в xcode 5
- 29. Вход Netty Server, обработчик обработчика кодировщика и обработчик обработчика декодера должен быть реплицирован в код клиента?
- 30. Получить UITouch из UIPanGestureRecognizer
Хорошо, спасибо. Одна вещь, которую я заметил, заключается в том, что когда она переключается на жест панорамы, когда один палец удаляется, то оба распознавателя жеста становятся активными, кастрюля и щепотка. Я думаю, что смогу обойти это. Но разве можно полностью отказаться от распознавателя жестов при нажатии пальца? Глядя на документацию UIGestureRecognizer, я предполагаю, что вы не можете. – Joe
Также еще одна вещь .. При одновременном распознавании жестов метод panGestureRecognizer вызывает его метод, но также поддерживает panGestureRecognizer. Мне кажется немного странным, я не совсем понимаю логику этого. Я предполагаю, что это тоже невозможно предотвратить? – Joe
Вы можете предотвратить запуск regoznier жестов, удалив целевое действие target (- (void) removeTarget: (id): (SEL)) или просто отключив его (http://stackoverflow.com/questions/6593772/ как-to-cancel-reset-an-uigesturerecognizer). Поэтому, когда вы хотите, чтобы любой из распознавателей остановился, просто отключите его. Я никогда не испытывал вторую проблему (о взгляде родителей). Возможно, вы можете поделиться некоторыми из кода, который вы используете для создания распознавателя жестов, чтобы узнать, что может произойти. Удачи. –