Когда iOS касается метода (Cancelled & Ended)?

Я пытаюсь написать программу с использованием UIBezierPath и затрагивает методы. Меня смущает метод двух касаний:

- (void)touchesCancelled:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event;
- (void)touchesEnded:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event;

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

2 ответа

Решение

Вы не должны вызывать эти методы. Они называются Cocoa Framework для вас. Вам просто нужно реализовать их, чтобы обеспечить правильное (нативное) поведение вашего подкласса UIResponser или ваш обычай UIGestureRecognizer подкласс.

Пожалуйста, обратитесь к руководству Apple о создании подклассов UIResponder для получения более подробной информации о том, как вы должны реализовать эти методы.

Из документации Apple о - (void)touchesEnded:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event метод:

Сообщает респонденту, когда один или несколько пальцев подняты из вида или окна.

Из документации Apple о - (void)touchesCancelled:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event метод:

Отправляется получателю, когда системное событие (например, предупреждение о нехватке памяти) отменяет сенсорное событие.

Этот документ от Apple даст вам ответ относительно touchesCancelled событие:

Если респондент создает постоянные объекты при обработке событий, он должен реализовать touchesCancelled:withEvent: метод для удаления этих объектов, если система отменяет последовательность. Отмена происходит, когда внешнее событие - например, входящий телефонный звонок - нарушает обработку события текущего приложения. Обратите внимание, что объект респондента должен также избавиться от любых постоянных объектов, когда он получает последний touchesEnded:withEvent: сообщение для мультитач последовательности.

Этот метод необходим при реализации пользовательской обработки сенсорных событий в приложении для пользовательского объекта. Это позволяет вам очищать ресурсы, когда пользователь перестает касаться вашего пользовательского объекта или когда касания отменяются.

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