2012-05-25 3 views
13

Ho un UIViewparentView che implementa uno UITapGuestureRecognizer e fa qualcosa quando viene toccato. parentView ha una vista secondaria denominata childView che implementa anche uno UITapGuestureRecognizer e fa qualcosa quando viene toccato.Disabilitare i tocchi di ricezione dalla vista genitore nella sottoview

C'è un caso in cui devo spegnere il childViewsUITapGestureRecognizer durante un'animazione per un lieve momento, e ho notato quando è spento e io toccare childView, il rubinetto viene ricevuto da parentView. Inoltre, ho una barra degli strumenti allegata alla parte superiore di questa vista che non ha alcun identificatore di movimenti ad essa associato, e tocca a passare a parentView (i pulsanti funzioneranno a malapena). Mi chiedo se è possibile disabilitare questo senza avere un riferimento ai genitori UITapGestureRecognizer?

Ho provato a utilizzare la proprietà exclusiveTouches di UIView impostata su sì e non funziona. Tutti i suggerimenti sarebbero apprezzati.

risposta

23

Negli riconoscitori gesto genitore, attuare il UIGestureRecognizerDelegate e implementare il seguente metodo:

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch 
{ 
    if ([touch.view isKindOfClass:[ClassThatYouWantTouchesBlocked class]]) 
    { 
     return NO; 
    } 
    else 
    { 
     return YES; 
    } 
} 

Sostituire ClassThatYouWantTouchesBlocked con la classe che si desidera i suoi tocchi per essere ignorato.

1

E se non spenga mai il il rilevatore di gesti di tocco di ChildView? se sta animando il ritorno dal metodo dei gesti di tocco del bambino senza fare nulla.

Se si tratta di un di isAnimating proprietà IMAGEVIEW potrebbe venire in uso.

+0

May I know Why down vote? –

+0

Risposta valida - prevarrò. Le persone che non conoscono nulla senza spiegazione sono una piaga per stackoverflow.com. – Cthutu

+0

Apprezzo lo sforzo di Warif ma downvoted perché non sta rispondendo alla domanda, sta provando a cambiare la dichiarazione di problema. E @Cthutu, direi che sei più di una piaga per StackOverflow.com per dispetto di upvoting perché non ho spiegato. –