Dostaję sporadyczne raporty od użytkowników na iOS 7, mówiąc, że UIPanGestureRecognizer
przestaje działać na niektórych widokach od czasu do czasu. Powinni móc przesuwać widok w prawo/lewo, ale po prostu się łamie i nie działa z jakiegoś nieznanego powodu. Wymuszenie zamknięcia aplikacji i jej ponowne uruchomienie rozwiązuje problem.UIPanGestureRecognizer czasami nie działa na iOS 7
Ten problem nigdy się na iOS 6. I nie mam żadnego kodu, który wyłącza aparat rozpoznawania gestów w każdym momencie oprócz delegata gestureRecognizerShouldBegin
że zmusza gest rozpoznają jedynie patelnie pozioma:
- (BOOL)gestureRecognizerShouldBegin:(UIPanGestureRecognizer *)gestureRecognizer {
if ([gestureRecognizer isMemberOfClass:[UIPanGestureRecognizer class]]) {
CGPoint translation = [gestureRecognizer translationInView:[self superview]];
if (fabsf(translation.x) > fabsf(translation.y)) {
if (translation.x > 0)
return YES;
}
}
return NO;
}
Did cokolwiek zmieni się w UIPanGestureRecognizer
(lub po prostu zwykłym UIGestureRecognizer
), które może być przyczyną tego problemu?
Czy zweryfikowałeś, że sprawdzanie 'x> y' nie powoduje wcześniejszego wyjścia w czasie, gdy wydaje się, że kreator nie działa? – RyanR
Niestety, nie mogę nawet odtworzyć błędu na żadnym z moich urządzeń, ale otrzymałem wystarczającą liczbę raportów od użytkowników, którzy wiedzą, że to nie tylko pojedynczy użytkownik, który nie wie, co robi. – bmueller
Mam to już kilka razy. 'GestRecognizerShouldBegin' zostaje wywołany i zwraca' YES' poprawnie, ale metoda przypisana do 'UIPanGestureRecognizer' NIE jest wywoływana. Więc rozpoznaje ten gest, ale nie nazywa metody ... – bmueller