2016-01-23 4 views
1

Я пытаюсь написать программу с использованием UIBezierPath и затрагивает методы. Я смущен методом двух касаний:Когда метод iOS касается метода (Отмененный & Законченный)?

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

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

ответ

3

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

Подробнее о том, как вы должны применять эти методы, см. В разделе Apple's guide о подклассе UIResponder.

С Apple's documentation о - (void)touchesEnded:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event методе:

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

От Apple's documentation о - (void)touchesCancelled:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event Метод:

Направлен в приемник, когда системное событие (например, предупреждение низкой памяти) отменяет сенсорное событие.

1

This document от Apple, дать Вам ответ по поводу touchesCancelled события:

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

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