Я не знаю, документировано ли это где-либо, но я обнаружил эмпирически, что любые состояния жестов, отличные от UIGestureRecognizerStateBegan
, UIGestureRecognizerStateChanged
и UIGestureRecognizerStateRecognized
, будут содержать информацию касания мусора и местоположение. Во многих случаях код даже зависал при попытке получить доступ к несуществующему прикосновению.
Таким образом, изменение условия следующим образом должно устранить возникшую проблему:
- (void)pan:(UIPanGestureRecognizer *)gesture
{
if (gesture.state == UIGestureRecognizerStateChanged) {
CGPoint location = [gesture locationInView:[self superview]];
[self setCenter:location];
}
}