Как зафиксировать точку, изначально заданную в UIPanGestureRecognizer?

У меня есть приложение, которое позволяет пользователю обводить линии на экране. Я делаю это, записывая точки в 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. Я подумал, что спрошу здесь, прежде чем идти по этой дороге.

23
задан todd412 6 August 2011 в 16:24
поделиться