У меня есть приложение, которое позволяет пользователю трассировать строки на экране. Я делаю это, записывая точки в UIPanGestureRecognizer:
-(void)handlePanFrom:(UIPanGestureRecognizer *)recognizer
{
CGPoint pixelPos = [recognizer locationInView:rootViewController.glView];
NSLog(@"recorded point %f,%f",pixelPos.x,pixelPos.y);
}
Это прекрасно работает. Тем не менее, меня очень интересует первый момент, когда пользователь постучал, прежде чем начать панорамирование. Но вышеприведенный код дает мне только то, что произошло после того, как жест был распознан как кастрюля (против крана).
Из документации видно, что может быть нет простого способа определить исходное местоположение в API UIPanGestureRecognizer. Хотя в UIPanGestureRecognizer.h я нашел это объявление:
CGPoint _firstScreenLocation;
... который кажется закрытым, так что не повезло. Я рассматриваю возможность выйти за пределы системы UIGestureRecognizer полностью, чтобы захватить эту начальную точку, и позже ссылаюсь на нее, когда я знаю, что пользователь действительно начал UIPanGesture. Я думал, что попрошу здесь, прежде чем спуститься по этой дороге.