Я вижу много вопросов об этом в Интернете, и особенно в StackOverflow. Я тестирую многие ответы, но в моем случае ничего не работает.shouldReceiveTouch не называется
Мой класс реализует протокол UIGestureRecognizerDelegate
:
@interface CDMapViewController : CDViewController <UIGestureRecognizerDelegate>
Следующий метод писал из Xcode автозавершения в @implentation моего класса
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer
shouldReceiveTouch:(UITouch *)touch {
NSLog(@"not called");
return NO;
}
я правильно инициализировать UIGestureRecognizer в первом методе, который правильно вызывать второй, третий и четвертый методы:
- (void)initGestureOnMap {
UIGestureRecognizer *gestureRecognizer = [[UIGestureRecognizer alloc] init];
gestureRecognizer.delegate = self;
[self.view addGestureRecognizer:gestureRecognizer];
}
- (void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
[super touchesBegan:touches withEvent:event];
gesture_dragging = NO;
}
- (void) touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
[super touchesMoved:touches withEvent:event];
gesture_dragging = YES;
}
- (void) touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
[super touchesEnded:touches withEvent:event];
if (gesture_dragging || [touches count] != 1) return;
/* bla bla bla */
}
... Это не журнал - не называется ... почему?
Атрибуты распознавания жестов должны были заменить 'touchhesBegan:' и все эти методы. Обычно вам нужно только реализовать тот или иной. –