Vorrei rilevare la posizione di tocco (iniziale) nel mio UIScrollView quando l'utente inizia a trascinare. Ho cercato su Google questo problema e molti sembrano lottare con questo stesso problema. Ora, anche se non riesco ancora a spiegarmi perché Apple non consentirebbe agli utenti di accedere alle informazioni sul touch in una vista a scorrimento, non posso fare a meno di trovare una soluzione da solo. Tuttavia tutte le mie prove sono fallite, quindi vorrei chiederti.Rileva posizione touch su UIScrollView?
Ecco quello che pensavo sarebbe lavorare:
ho creato un UIPanGestureRecognizer come questo nel mio UIScrollView sottoclasse e aggiungerlo ai propri sistemi di riconoscimento gesto:
UIPanGestureRecognizer *tapDrag = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(touchedAndDragged:)];
tapDrag.cancelsTouchesInView = NO;
tapDrag.delegate = self;
[self addGestureRecognizer:tapDrag];
E il metodo corrispondente:
-(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;
/****
?????
*****/
}
Come indicato dai commenti, vorrei disabilitare il gesto pan dopo aver ottenuto il punto e quindi disabilitare il riconoscimento (mentre STILL trascinando!) e "passa" i tocchi alla mia vista di scorrimento, in modo che l'utente possa scorrere normalmente. È del tutto fattibile? C'è qualche altra soluzione ad esso?
è possibile rilevare se questo scroll è in qualche posizione xx quindi scrollView scrolling o touch non verrà attivato? diciamo che ho due viste, una mappa e un pannello sotto la mappa in una vista di scorrimento, non voglio che la vista di scorrimento per licenziare il suo delegato quando tocchi mappa e mappa dovrebbe ottenere il suo tocco –