Я работаю в небольшом приложении для iPhone, которое использует openGL.
Приложение должно:
Перемещаться по экрану движущимся прикосновением.Увеличение / уменьшение масштаба, нажав
Я перезаписываю эту функцию, чтобы обрабатывать координаты касаний и перемещаться по экрану пальцем, с успехом, работая отлично:
- (void) touchesBegan: (NSSet *) затрагивает событиеEvent: (UIEvent *)
- (void) touchesMoved: (NSSet *) затрагивает событие withEvent: (UIEvent *)
- (void) touchesEnded:(NSSet *) касается события: (UIEvent *)
Я использую распознаватели UIGesture для двойного касания, сжимания жестов, пролистывания, счетчика с успехом, все жесты обнаруживаются идеально.
Но у меня конфликты.Например, иногда я делаю двойное касание, и оно распознается правильно, но оно также передается моей функции touchedMoved, что приводит к ошибочным движениям.То же самое происходит с жестами сжатия и встречного сжатия, в большинстве случаев они хорошо работают при увеличении и уменьшении, но иногда моя функция touchSMoved также обнаруживает касания и перемещает экран.
Это плохая практикаперезаписать эту функцию и одновременно использовать UIGesturerecognizer?Если нет, то есть ли способ работать с обоими без конфликтов?
Я попытался установить setDelaysTouchesBegan и setDelaysTouchesEnded в Yes в своих распознавателях, но в результате мои прикосновения не были переданы ни одной из моих перезаписанных функций!
Я думал об использовании UIGestureRecognizer для обработки пролистываний и удаления перезаписанных функций для получения касаний, а также с помощью значения пролистывания, чтобы вычислить, насколько сильно смещается мой экран?