Я хотел бы обнаружить (начальную) позицию касания в своем UIScrollView, когда пользователь начнет перетаскивать. Я столкнулся с этой проблемой, и многие, похоже, борются с этой самой проблемой. Теперь, пока я все еще не могу окунуться в голову, почему Apple не позволит пользователям получать доступ к сенсорной информации в виде прокрутки, я не могу не найти решение самостоятельно. Однако все мои попытки потерпели неудачу, поэтому я хотел бы спросить вас.
Вот что я думал:
Я установил UIPanGestureRecognizer, как это в своем подклассе UIScrollView, и добавьте его в свои распознаватели жестов:
UIPanGestureRecognizer *tapDrag = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(touchedAndDragged:)];
tapDrag.cancelsTouchesInView = NO;
tapDrag.delegate = self;
[self addGestureRecognizer:tapDrag];
И соответствующий метод:
-(void)touchedAndDragged:(UIPanGestureRecognizer*)t{
CGPoint loc = [t locationInView:self];
//do something with location (that is exactly what I need)
//...
//Now DISABLE and forward touches to scroll view, so that it scrolls normally
t.enabled = NO;
/****
?????
*****/
}
Как указано в комментариях, я хотел бы отключить жест панорамы после того, как у меня есть точка, а затем отключить распознаватель (в то время как STILL перетаскивание!) и "передать" штрихи в мое представление прокрутки, чтобы пользователь мог прокручивать как обычно. Это вообще возможно? Есть ли другое решение?