2013-05-06 4 views
0

В IOS 6, как добавить PinchGesture, который обнаруживает только один раз?ios: pinchGesture, которое происходит только один раз

У меня есть UIView, что я добавляю к pinchGesture:

[self addPinchGestureRecognizersToView:self.view]; 

Тогда я придаю функцию этого Pinch, чтобы вызвать в UIView. Проблема в том, что когда я зажимаю, событие происходит несколько раз, что делает ViewController для addSubview многократно зависеть от того, сколько раз происходит событие.

Итак, как я могу ограничить его только 1 раз или удалить его в тот момент, когда он обнаружит щепотку. Я пробовал:

[self.view removeGestureRecognizer:UIPinchGestureRecognizer]; 

Но у меня ошибка компиляции.

+2

Почему вы не можете просто подсчитывать, сколько раз звонит событие? – Ushan87

+0

А что такое ошибка? – CRDave

ответ

0

Вы должны знать, что жест щепотка - это непрерывный жест. То есть он может быть распознан много раз во время сенсорной процедуры.

Если вы хотите распознать только один раз, вы можете удалить его при первом распознавании. Причина, по которой вы получаете ошибку компиляции, - это «запомнить» ваш жест и удалить его позже.

1

Спасибо за все предложения. Я просто подумал о простейшем решении - добавьте BOOLEAN для проверки. Остальные работают как шарм.

0

[self.view removeGestureRecognizer:UIPinchGestureRecognizer];

Этот вызов метода является недействительным. UIPinchGestureRecognizer - это не экземпляр класса. Вы должны заменить его на правильный распознаватель, который вы добавили.

for (UIGestureRecognizer* recognizer in [self.view.gestureRecognizers copy]) { 
    if ([recognizer isKindOfClass:[UIPinchGestureRecognizer class]]) { 
     [self.view removeGestureRecognizer:recognizer]; 
    } 
} 
Смежные вопросы