Ho una vista tabella con cella personalizzata. La tabella è divisa in molte sezioni e righe. Ho un pulsante personalizzato sulla cella. ora voglio ottenere il numero di sezione e il numero di riga quando clicco su quel pulsante.? qualche idea riguardo a questaottiene il numero di sezione e il numero di riga sul pulsante di scelta delle celle personalizzate?
ottiene il numero di sezione e il numero di riga sul pulsante di scelta delle celle personalizzate?
risposta
È necessario implementare un metodo di gestione degli eventi UIControl sul controller di visualizzazione e impostarlo come gestore per tutti i pulsanti. vale a dire all'interno della vostra funzione -tableView:cellForRowAtIndexPath:
si dovrebbe fare qualcosa di simile:
[theCell.button addTarget: self
action: @selector(buttonPressed:withEvent:)
forControlEvents: UIControlEventTouchUpInside];
Allora il vostro gestore di eventi sarebbe simile a questa:
- (void) buttonPressed: (id) sender withEvent: (UIEvent *) event
{
UITouch * touch = [[event touches] anyObject];
CGPoint location = [touch locationInView: self.tableView];
NSIndexPath * indexPath = [self.tableView indexPathForRowAtPoint: location];
/* indexPath contains the index of the row containing the button */
/* do whatever it is you need to do with the row data now */
}
il seguente metodo viene chiamato quando si seleziona una cella nella tua tableView:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
per accedere al numero di sezione: int section = indexPath.section;
per accedere il numero di riga (all'interno della corretta sezione): int row = indexPath.row;
che non viene chiamato quando l'utente tocca un pulsante su una riga; viene chiamato solo se toccano lo stesso sfondo della riga. –
L'UITableView can convert a CGPoint coordinate into an indexPath:
-(NSIndexPath *)indexPathForRowAtPoint:(CGPoint)point
Qualche considerazione:
È possibile scorrere la gerarchia superview del pulsante fino a trovare un UITableViewCell, quindi chiamare - (NSIndexPath *) indexPathForCell: (UITableViewCell *) cella del UITableView.
- (void)buttonClicked:(id)sender {
UIView *button = sender;
for (UIView *parent = [button superview]; parent != nil; parent = [parent superview]) {
if ([parent isKindOfClass: [UITableViewCell class]]) {
UITableViewCell *cell = (UITableViewCell *) parent;
NSIndexPath *path = [self.tableView indexPathForCell: cell];
// now use the index path
break; // for
}
}
}
È possibile utilizzare alternativamente il tag del pulsante per memorizzare un indice che fa riferimento alla riga. Questo contiene solo un singolo intero, quindi ha più senso quando si ha una singola sezione o quando si gestiscono le righe come un elenco semplice.
È possibile alternare sottoclasse UITableViewCell per incapsulare il pulsante. UITableViewCell potrebbe rispondere agli eventi del pulsante e ritrasmettere un evento al proprio delegato, passando per se stesso. Il delegato dell'evento può quindi chiamare - (NSIndexPath *) indexPathForCell: (UITableViewCell *) cella su UITableView per ottenere il percorso dell'indice.
Add può variabile della vostra UITableViewCell subclassTo esempio memorizzare il percorso indice della cella:
NSIndexPath *myIndexPath;
Quando si crea la cella in:
cellForIndexPath:
passaggio nell'area di indexpath alla recente creazione/cella riciclata.
Ora, quando si preme il pulsante, basta leggere il percorso dell'indice dall'avar della cella.
- 1. PHP ottiene il numero di riga dall'evento di registrazione
- 2. Ionic ottiene il numero di telefono dell'utente
- 3. UITableVista altezza basata sul numero di celle
- 4. ottiene il numero di file modificati il mese scorso
- 5. Mostra il numero di riga nella gestione delle eccezioni
- 6. Ottenere il numero di riga corrente?
- 7. PHP: Ottiene il numero di parametri di una funzione richiede
- 8. Incremento numero riga sul gruppo
- 9. Aumento delle dimensioni di un pulsante di scelta
- 10. LaTeX: capitolo di composizione e numero di sezione nel margine
- 11. Come personalizzare il pulsante di scelta dell'elenco delle preferenze
- 12. Ottenere il numero di celle piene in una colonna (VBA)
- 13. Come limitare il numero di celle visualizzate su UITableview?
- 14. Segue non viene selezionato il numero di riga
- 15. Excel: restituisce il numero di celle che non sono vuote
- 16. Nome file grep e numero di riga
- 17. aggiunta di lista e il numero NumPy
- 18. Ottieni il numero di riga dell'eccezione di prima volta
- 19. ottiene il numero di colonne di una particolare riga in excel dato utilizzando Java
- 20. Numero di riga dell'asse e posizione del cursore corrente.
- 21. Ottiene il numero totale di righe quando si utilizza LIMIT
- 22. MySQL ottiene il numero di righe in una tabella innodb
- 23. Ottiene il numero di elementi non vuoti da matrici nidificate
- 24. ottiene il numero più prossimo dall'array
- 25. Numero di blocco negativo della sezione critica
- 26. javascript se il numero maggiore di numero
- 27. Creazione di celle personalizzate nella riga statica UITableView
- 28. paginazione wordpress ottiene il numero di pagina corrente dall'url
- 29. Symfony2 & Dottrina - Ottiene il numero di righe restituite dal datasource
- 30. PHP/mysql ottiene il numero di righe interessate dell'istruzione UPDATE
lieve correzione ... [i tocchi dell'evento] dovrebbero essere [evento tuttiTutti] – dizy
grandioso! questo è esattamente quello che sto cercando ... grazie .. – mshsayem