Chciałbym wykryć (początkową) pozycję dotykową w moim UIScrollView, gdy użytkownik rozpoczyna przeciąganie. Mam googleed ten problem i wielu wydaje się walczyć z tym właśnie problemem. Teraz, gdy wciąż nie mogę objąć głowy, dlaczego Apple nie pozwoliłby użytkownikom uzyskać dostępu do informacji dotykowych w widoku przewijania, nie mogę pomóc, ale znaleźć rozwiązanie samodzielnie. Jednak wszystkie moje próby zawiodły, więc chciałbym cię zapytać.Wykryj lokalizację dotyku na UIScrollView?
Oto, co myślałem, że działa:
założyłem UIPanGestureRecognizer jak to w moim UIScrollView podklasy i dodać go do swoich Recognizers gestu
UIPanGestureRecognizer *tapDrag = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(touchedAndDragged:)];
tapDrag.cancelsTouchesInView = NO;
tapDrag.delegate = self;
[self addGestureRecognizer:tapDrag];
i odpowiadający mu sposób:
-(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;
/****
?????
*****/
}
Jak wskazano w komentarzach, chciałbym wyłączyć gest panoramowania po tym, jak mam punkt, a następnie wyłączyć rozpoznawanie (podczas ciągłego ciągnięcia!) i "przekaż" dotknięcia do mojego widoku przewijania, aby użytkownik mógł przewijać normalnie. Czy to w ogóle możliwe? Czy jest jakieś inne rozwiązanie?
czy można wykryć, czy ten zwoju znajduje się w jakimś miejscu x, czy przewijanie w widoku przewijania lub dotyk nie zostaną uruchomione? załóżmy, że mam dwa widoki, mapę i panel poniżej mapy w widoku przewijania, nie chcę, aby widok przewijania uruchamiał delegata po dotknięciu mapy, a mapa powinna zostać dotknięta –