Когда 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:
сообщение для мультитач последовательности.
Этот метод необходим при реализации пользовательской обработки сенсорных событий в приложении для пользовательского объекта. Это позволяет вам очищать ресурсы, когда пользователь перестает касаться вашего пользовательского объекта или когда касания отменяются.