У меня есть операция касания, которая является триггером для изменения размера сценария, где операция начинается при касании, перемещается и должна заканчиваться на touchEnded. Дело в том, что touchsEnd может быть на другом представлении пользовательского интерфейса, поскольку пользователь перетаскивает палец. Как зарегистрировать * глобальный»touchesEnded слушателя?Глобальный обработчик событий для Touch Up Inside
1
A
ответ
5
Вы должны использовать UIPanGestureRecognizer
. Каждый раз, когда он запускает, проверьте state
жеста распознаватель. Если это UIGestureRecognizerStateBegan
то точка зрения первого прикосновения, если это UIGestureRecognizerStateChanged
то пользователь перемещает свой палец, если он UIGestureRecognizerStateEnded
, тогда пользователь поднял палец.
Пока этот жест начинается с вашего вида, он будет продолжать (если не отменен) даже после того, как выйдет за пределы видимости, t необходимо беспокоиться о том, чтобы «сделать его глобальным».
Инициализировать распознаватель жестов с помощью:
UIPanGestureRecognizer *dragViewGestureRecognizer = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(handleDragView:)];
dragViewGestureRecognizer.maximumNumberOfTouches = 1;
[yourView addGestureRecognizer:dragViewGestureRecognizer];
Затем заполните следующий метод с кодом вам нужно:
- (void)handleDragView:(UIPanGestureRecognizer*)panGestureRecognizer {
switch (panGestureRecognizer.state) {
case UIGestureRecognizerStateBegan: {
//Code when dragging starts
break;
} case UIGestureRecognizerStateChanged: {
//Code while dragging is happening (if needed)
break;
} case UIGestureRecognizerStateEnded: {
//Code when dragging ends
break;
}
default:
break;
}
}
Смежные вопросы
- 1. UIButton Подкласс Игнорирование событий «Touch Up Inside»
- 2. UIButton Touch Up Inside TouchesBegan
- 3. Глобальный обработчик событий
- 4. iOS UIButton Touch-Up-Inside странное поведение
- 5. Touch Up Inside не работает должным образом
- 6. VB.NET 2005 - «Глобальный» обработчик событий?
- 7. Глобальный обработчик событий в Angular
- 8. Обработчик событий Sencha touch для элемента html
- 9. Response.Redirect from inside Обработчик событий IPN_Notified
- 10. Возможно определить, была ли кнопка Sender от Touch Up Inside или Touch Up Outside?
- 11. Глобальный обработчик событий для всех элементов управления для справки пользователя
- 12. UIControl: Touch Up Внутри работы, но Touch Up Outside не
- 13. jquery mobile vmouse up обработчик событий дважды запускается
- 14. Глобальный обработчик событий для TextBox, получающего фокус с помощью мыши.
- 15. Touch Events Inside ActionBarActivity
- 16. Глобальный обработчик даты для javascript
- 17. Событие UIButton 'Touch Up Inside' не работает. «Touch Down» отлично работает
- 18. MonoDroid: глобальный обработчик ошибок
- 19. WPF-глобальный обработчик исключений
- 20. EJB глобальный обработчик исключений
- 21. iOS - Глобальный обработчик исключений
- 22. обработчик событий для TabbedPanel
- 23. Обработчик событий для массива
- 24. глобальный обработчик исключений - mule
- 25. Глобальный обработчик исключений для приложения MVVM Light
- 26. Обработчик событий «Global»
- 27. Touch Up Внутри не работает с UISlider
- 28. глобальный обработчик ajaxError jquery
- 29. Глобальный обработчик управления
- 30. Java: Глобальный обработчик исключений
Это здорово !! как я могу получить UIView, что в данный момент находится палец? – user2453876
Событие запускается только в том случае, если начальное касание «захвачено» по представлению, которое вы добавили обработчику жестов ('yourView' в код выше). Если у нескольких диспетчеров жестов при просмотре нескольких видов доступ к одному и тому же методу, вы можете получить представление, которое вызвало событие, обратившись к 'panGestureRecognizer.view' из метода' handleDragView: '. – Ander