Desidero ottenere quanto segue.Creazione di un UIView che acquisisce i tocchi, ma è trasparente per tutti gli altri gesti
Scenario: la tastiera iOS è a schermo mentre l'utente sta digitando un particolare campo di testo. L'utente può toccare qualsiasi punto al di fuori della tastiera e del campo di testo per chiudere la tastiera (senza attivare alcun pulsante visibile). Inoltre, l'utente può trascinare fuori dalla tastiera e osservare il normale comportamento di trascinamento su alcune disposizioni delle viste scorrevoli.
Concettualmente, sto mettendo una “copertura” UIView
su gran parte dello schermo, che si comporta in modo tale che:
Se l'utente tocca in copertina, poi ho catturare quel rubinetto (in modo che possa Ad esempio, ignorare la tastiera). È facile ottenerlo intercettando gli eventi di tocco in una sottoclasse
UIView
o utilizzando un riconoscitore di gesti.Se l'utente trascina sul coperchio, quindi il coperchio ignora o avanti questi tocchi; questi sono ricevuti dagli strati sottostanti proprio come sarebbero stati senza una copertura.
Quindi: l'utente deve essere in grado di scorrere il contenuto sotto il coperchio, ma non toccare il contenuto sotto il coperchio. Un tocco "esterno" della tastiera e del campo di testo dovrebbe eliminare la tastiera (e la copertina), ma non dovrebbe attivare nulla.
Come posso ottenere questo risultato?
È necessario prendere in considerazione l'implementazione del metodo delegati touch e passare i tocchi alle viste che si trovano dietro di esso per lo scorrimento. '- (void) touchesBegan: (NSSet *) tocca conEvent: (UIEvent *) evento { [otherView touchesBegan: touch withEvent: event]; } 'Un altro modo è implementare, UIPanGestureRecognizer e impostare cancelsTouchesInView = YES come' UIPanGestureRecognizer * gr = [[UIPanGestureRecognizer alloc] initWithTarget: self action: @selector (handlePan)]; [gr setCancelsTouchesInView: YES]; [myButton addGestureRecognizer: gr]; [gr release]; ' – iDev
@mjh, hai mai trovato una soluzione a questo? – kpozin