2009-05-31 1 views
5

Sto implementando i gesti di scorrimento nel mio controllo customtableviewcell e quindi ho bisogno di implementare i tocchi. Evento Began. Sono in grado di implementare gli swipes, ma sfortunatamente, poiché i touchesBegan vengono gestiti nella customcell, non ricevo un messaggio didSelectRowAtIndexPath sul tablecontroller. Se il metodo touchsBegan è disabilitato, funziona.Gestione dei tocchiInizio in UITableViewCell disabilita didSelectRowAtIndexPath

Come dovrebbe essere gestito? Voglio che l'evento touch bolla la catena del risponditore dopo i ritocchi. Come posso fare questo?

Grazie.

risposta

12

I "sicuro che si può vedere che questo sta accadendo perché si sta sostituire un metodo che è stato precedentemente definito in una classe di super-. E così facendo significa che gli eventi non sono chiamati.

hai provato chiamando [super touchesBegan]? quella roba modo tutto a monte viene gestito. ed è possibile ignorare il gesto di scorrimento.

o un'altra opzione è quella di chiamare il delegato quando il tocco viene rilevato nel proprio metodo di tocchi.

qualcosa come (probabilmente avrete implementazioni anche degli altri eventi di tocco)

-(void) touchesBegan 
{ 
//logic to detect tap only. 
[tablecell.delegate didSelectRowAtIndexPath:(some way to determin touched row)] 
} 
+6

[super touchesBegan] è probabilmente il modo giusto per farlo. – amattn

+0

Grazie, ha funzionato. – Mugunth

+0

nessun problema, quale metodo hai usato? apprezzerei anche i punti di risposta – Bluephlame