Отключение UIPinchGestureRecognizer с помощью setEnabled: NO - PullRequest
0 голосов
/ 20 января 2012

У меня есть распознаватель жестов пинч, прикрепленный к моему scrollView (один поверх стандартного). Я пытаюсь включить и отключить его на определенных уровнях масштабирования, но он не работает. Я использую команды:

[self.pinchGesture setEnabled:NO];
and
[self.pinchGesture setEnabled:YES];

для включения и отключения жеста Я пытаюсь отладить его и использую этот код для распечатки описания моих жестов:

NSArray *gestures = [self.scrollView gestureRecognizers];
for (UIGestureRecognizer *gesture in gestures) {
    NSLog(@"%s, gesture: %@", __FUNCTION__, [gesture description]);
}

Я вижу, что для моего собственного жеста это выглядит так:

gesture: <UIPinchGestureRecognizer: 0x88a62d0; state = Possible; enabled = NO; view = <UIScrollView 0x880c360>; target= <(action=handlePinch

Таким образом, даже если для него установлено значение enabled = NO, пинч все равно вызывает метод handlePinch :. Для этого есть причина? Или мне нужно использовать [self.scrollView setGestureRecognizers:<#(NSArray *)#>, чтобы убрать этот жест щипка? Если я собираюсь пойти по такому пути, нужно ли мне циклически проходить через мои жесты для scrollView, сохранять ссылки на них, чем устанавливать их, чтобы я не сбрасывал свой собственный жест повышения? Спасибо.

1 Ответ

0 голосов
/ 20 января 2012

Включенный просмотр прокрутки просто делает это: включает и отключает просмотр прокрутки. Распознаватели жестов - это разные животные, которые как бы привязаны к вашему обзору прокрутки, но ведут себя почти независимо. Почему бы не удалить цель для жеста вместо ее отключения, а затем добавить цель обратно при включении? В качестве альтернативы, установите логическое значение, которое ваш целевой метод проверяет и игнорирует жест, когда логическое значение равно YES.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...