Nota: si prega di vedere i commenti qui sotto per vedere se mentre questa soluzione ha funzionato per me, potrebbe ancora non essere una buona idea.
Un'alternativa alla creazione di una sottoclasse di UITableView
o UITableViewCell
(e all'utilizzo di un timer) sarebbe solo per estendere la classe UITableViewCell
con una categoria, ad esempio, (usando la risposta @ di ossigeno, in questo caso per la cella al posto del tabella):
@implementation UITableViewCell (DoubleTap)
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
if(((UITouch *)[touches anyObject]).tapCount == 2)
{
NSLog(@"DOUBLE TOUCH");
}
[super touchesEnded:touches withEvent:event];
}
@end
In questo modo non c'è bisogno di andare in giro a rinominare le istanze esistenti di UITableViewCell
con il nuovo nome della classe (si estenderà tutte le istanze della classe).
Nota che ora super
in questo caso (trattandosi di una categoria) non si riferisce a UITableView
ma al suo super, UITView
. Ma la chiamata al metodo effettivo a touchesEnded:withEvent:
è in UIResponder
(di cui sia UITView
e UITableViewCell
sono sottoclassi), quindi non c'è alcuna differenza lì.
vuoi dire un doppio tocco o un multi-touch? – lostInTransit
Intendo doppio tocco. –
solo da un punto di vista HIG, potresti prendere in considerazione l'utilizzo di un pulsante accessorio invece di richiedere il doppio tocco? Non conosco lo scenario di utilizzo, ma potresti doverlo spiegare ai tuoi utenti. –