2012-09-14 13 views
6

Dodałem dwa identyfikatory gestów machnięcia (przesuń w lewo i przesuń w prawo) do mojego UITableView. Potem mój widok tabeli przestał się przewijać. W tym samym czasie -(void)didSelectRowAtIndex działa dobrze. Jaki może być problem?iphone - UIGestureRecognizer zapobiega przewijaniu UITableView w Xcode 4.5

Wszystko co zrobiłem to przeciągnij i upuść Swipe Gesture Recognizers z biblioteki obiektów na mój UITableView.

Jeśli je usunę, mój stół zacznie przewijać ponownie.

UPD:

Dzieje się to po uaktualnieniu do Xcode 4.5. Nie ma takiego problemu w starszych wersjach Xcode. Aby uniknąć tego zachowania - dodaj programowo UIGestureRecognizers, a nie w IB.

Odpowiedz

6

prostu spróbuj kod miech To może pomóc .... napisać kod miech w viewDidLoad: metody

UISwipeGestureRecognizer *swipeGestureObjectImg = [[[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(yourSlideOpen_Clicked:)] autorelease];//yourSlideOpen_Clicked is method name where you doing something 
swipeGestureObjectImg.numberOfTouchesRequired = 1; 
swipeGestureObjectImg.direction = (UISwipeGestureRecognizerDirectionLeft); 
[yourView addGestureRecognizer:swipeGestureObjectImg]; 

UISwipeGestureRecognizer *swipeGestureRightObjectImg = [[[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(yourSlideClose_Clicked:)] autorelease];//yourSlideClose_Clicked is method name where you doing something 
swipeGestureRightObjectImg.numberOfTouchesRequired = 1; 
swipeGestureRightObjectImg.direction = (UISwipeGestureRecognizerDirectionRight); 
[yourView addGestureRecognizer:swipeGestureRightObjectImg]; 

jeżeli tutaj tableview jest subview klasy UIView następnie użyj powyższego kodu inaczej po prostu spróbuj "youtTableview" insted z "yourView"

Mam nadzieję, że to pomoże ci ...

:)

+2

Tak, działało po dodaniu ich programowo. aktualizacja do Xcode 4.5 – Oleg

+0

Potwierdzam, że działa, dodając programowo. – Leonardo

1

zestaw własnością gest Rozpoznawania cancelsTouchesInView = NIE

+0

to nie pomaga .. – Oleg

+0

Tak, masz rację, ale to nie pomaga w Xcode 4.5 (jeśli dodałeś to nie programowo) :( – DanSkeel

1

Miałem ten sam problem: Użyłem przeciągnąć mój TabGestureRecognizer bezpośrednio na storyboard, zamiast tworzyć je za pomocą kodu. W przypadku iOS6 teraz wydaje się, że przestawia się przewijanie.

Wolę dodawać widoki, gesty itp. Bezpośrednio do scenorysu, a nie poprzez kod.

Można jeszcze to zrobić, ale z dwiema zmianami:

1) odnoszenie Kolekcje Outlet

  • prawym przyciskiem myszy GestureRecognizer który jest widoczny dla Ciebie w ciągu doku dla sceny.
  • Wyczyść sekcja Odwoływanie Outlet Kolekcje

2) Zamontuj GestureRecognizer do powiązanej widzenia poprzez kod

  • Załóż ujście dla swojej GestureRecognizer
  • Dodaj następujący wiersz w metodzie viewDidLoad :

    [self.tableView addGestureRecognizer:_tabGesture];

0

Zmierzyłem się z tym samym problemem i rozwiązałem go, łącząc narzędzie do rozpoznawania gestów z widokiem zamiast z widokiem tabeli.

  1. Pokaż scenorys.
  2. Pokaż inspektora połączeń.
  3. Pokaż zarys dokumentu.
  4. Utwórz nowy odsyłacz w "Odnośnych kolekcjach wyjściowych" między narzędziem do rozpoznawania gestów a węzłem widoku pod kontrolerem widoku.

Pozdrawiam. Pedro.

Powiązane problemy