2011-12-25 26 views
7

Mam UILabel, które dodaję programowo do mojego głównego widoku. Następnie dodaję urządzenie do rozpoznawania gestów, aby uzyskać zdarzenia dotyku na etykiecie:Wykrywanie zdarzeń dotyku na UILabelu

UITapGestureRecognizer *recog = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(didTouchNotification)]; 
[notification addGestureRecognizer:recog]; 
[recog release]; 

Jednak nic się nie pali po dotknięciu etykiety. Zarchiwizowałem wszystkie subviews, aby upewnić się, że etykieta jest na górze i jest. Jedyny sposób, w jaki mogę uruchomić program rozpoznający, to dodawanie go do widoku podstawowego, ale to niewiele pomaga. Czy ktoś wie, dlaczego ta etykieta zachowuje się "w sposób przejrzysty"?

Wesołych świąt! Domyślnie

Odpowiedz

18

UILabel ma domyślnie ustawioną wartość userInteractionEnabled na NO, więc nie otrzymuje zdarzeń dotykowych, a funkcja rozpoznawania gestów nie działa. Spróbuj włączyć interakcję użytkownika z etykietą:

... 
notification.userInteractionEnabled = YES; 
... 
Powiązane problemy