Utilizzo un UITableViewCell personalizzato, incluso lo stesso per accessoryView
della cella. La mia configurazione per l'accessoryView avviene per la via di qualcosa di simile:Utilizzo di un'immagine personalizzata per l'accessorio di UITableViewCellVisualizzazione e risposta a UITableViewDelegate
UIImage *accessoryImage = [UIImage imageNamed:@"accessoryDisclosure.png"];
UIImageView *accImageView = [[UIImageView alloc] initWithImage:accessoryImage];
accImageView.userInteractionEnabled = YES;
[accImageView setFrame:CGRectMake(0, 0, 28.0, 28.0)];
self.accessoryView = accImageView;
[accImageView release];
Anche quando viene inizializzato il cellulare, utilizzando initWithFrame:reuseIdentifier:
ho assicurato per impostare la seguente proprietà:
self.userInteractionEnabled = YES;
Purtroppo nel mio UITableViewDelegate, il mio metodo tableView:accessoryButtonTappedForRowWithIndexPath:
(prova a ripetere che 10 volte) non viene attivato. Il delegato è sicuramente cablato correttamente.
Cosa può essere che manchi?
Grazie a tutti.
Grazie Jim. È un peccato che ho passato più di 20 minuti a chiedermi perché non posso farlo con un imageView personalizzato. Ho appena visto come farlo sull'app Accessory di Apple. La tua risposta è ben spiegata e documentata, quindi la sto prendendo in considerazione e la tengo in giro. Grazie ancora. :-) –
Questa soluzione è geniale! +1 –
Solo per gli altri che guardano questa risposta, puoi anche semplicemente mettere un tag sul pulsante che corrisponde alla riga (se hai più sezioni, dovrai fare un po 'di matematica) e poi tirare fuori il tag da il pulsante nella funzione. Penso che potrebbe essere un po 'più veloce del calcolo del tocco. – RyanJM