6

Czy istnieje sposób, aby cofnąć requireGestureRecognizerToFail.Cofnij [UIGestureRecognizer * requireGestureRecognizerToFail]

Ustawiłem zależność między dwoma UIGestureRecognizers z requireGestureRecognizerToFail w ten sposób.

UITapGestureRecognizer* tgr1 = [UITapGestureRecognizer alloc] initWithTarget ...]; 
UITapGestureRecognizer* tgr2 = [UITapGestureRecognizer alloc] initWithTarget ...]; 
[tgr1 requireGestureRecognizerToFail: tgr2]; 
... 
// later in the code 
[tgr2 release]; 

Jak wyrejestrować tgr2 z tgr1? Czy tgr2 rzeczywiście się zwolnił lub czy tgr1 ma teraz odniesienie? Jeśli nie, zwolnienie tgr2 spowoduje problemy?

Dzięki

Odpowiedz

3

Twoje pytania:

Jak wyrejestrować tgr2 z tgr1?

Masz wiele opcji.

  1. Możesz usunąć go z widoku.
  2. Możesz wyłączyć tgr2.
  3. Aby zachować dwa identyfikatory, musisz utworzyć nowy moduł rozpoznawania, który będzie wymagał niepowodzenia i dodać go, nie wiem, jak usunąć zależność między nimi i nie wiem, czy istnieje jakiś sposób.

Czy tgr2 rzeczywiście zwolniony, czy tgr1 ma teraz odniesienie?

tgr2 nie będzie mieć zwiększonej liczby inkrementacji po dodaniu do tgr1 requireGestureRecognizerToFail z tgr2.

Jeśli nie, zwolnienie tgr2 spowoduje problemy?

Nie, to nie będzie problemu przyczyna, tylko że tgr2 zawsze uda i będzie nazywać tgr1

+0

Hej, masz źródło dla tych roszczeń? Wydaje się działać w praktyce, ale czy Apple lub pracownik Apple kiedykolwiek powiedział, że zachowanie jest umowne? –

+0

@AndreyTarantsov Nie pamiętam, ale często używałem gestów, może niektóre z nich nie pochodzą z dokumentu, ale z testu, który zrobiłem. – ggrana