tengo tabla vista con celda personalizada. La tabla se divide en muchas secciones y filas. Tengo un botón personalizado en la celda. ahora quiero obtener el número de sección y el número de fila cuando hago clic en ese botón. alguna idea con respecto a esteobtener el número de sección y el número de fila en el botón de células personalizadas, haga clic en?
Respuesta
Deberá implementar un método de manejo de eventos UIControl en su controlador de vista, y configurarlo como el controlador para todos sus botones. es decir, dentro de su función de -tableView:cellForRowAtIndexPath:
que haría algo como:
[theCell.button addTarget: self
action: @selector(buttonPressed:withEvent:)
forControlEvents: UIControlEventTouchUpInside];
A continuación, el controlador de eventos se vería así:
- (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 */
}
El siguiente método se llama cuando se selecciona una celda de la tableView:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
para acceder al número de sección: int section = indexPath.section;
para acceder al número de fila (dentro de la correcta sección): int row = indexPath.row;
Eso no se llama cuando el usuario pulsa un botón en una fila; solo se llama si tocan el fondo de la fila. –
El UITableView can convert a CGPoint coordinate into an indexPath:
-(NSIndexPath *)indexPathForRowAtPoint:(CGPoint)point
Unos pocos pensamientos:
Se puede recorrer la jerarquía de supervista el botón hasta que encuentre un UITableViewCell, a continuación, llamar - (NSIndexPath *) indexPathForCell: celular (UITableViewCell *) en el 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
}
}
}
Usted puede utilizar alternativamente la etiqueta del botón para almacenar un índice de referencia de la fila. Esto solo contiene un entero único, por lo que tiene más sentido cuando tiene una sola sección o cuando administra las filas como una lista plana.
Puede alternativamente subclasificar UITableViewCell para encapsular el botón. Su UITableViewCell podría responder a los eventos de los botones y retransmitir un evento a su propio delegado, pasándose uno mismo. El delegado del evento puede llamar a - (NSIndexPath *) indexPathForCell: (UITableViewCell *) celda en UITableView para obtener la ruta del índice.
Agregar puede variable de instancia de su UITableViewCell subclassTo almacenar la ruta del índice de la celda:
NSIndexPath *myIndexPath;
Al crear la célula en:
cellForIndexPath:
pase en el indexpath a la recién creada/celda reciclada.
Ahora cuando presiona el botón, simplemente lea la ruta de índice del ivar de su celda.
- 1. ¿Cómo encontrar el número de células en UITableView
- 2. Cómo deshabilitar el botón, haga clic en?
- 3. Obtener número de fila actual en el interior ArrayFormula
- 4. Eclipse haga doble clic en el número de línea para el punto de interrupción
- 5. Android App para llamar a un número en el botón haga clic
- 6. Efectos de sonido en el botón haga clic en
- 7. JQgrid en el botón de actualización haga clic en
- 8. Elementos Botón de control, haga clic en el comando
- 9. Encuentre el número li clic
- 10. Incremento de número de fila en el grupo
- 11. Látex, NINGÚN número de sección en TOC pero visible en el encabezado de la sección actual
- 12. Obtener el número de columna de td
- 13. Deshabilitar formulario enviar automáticamente en el botón haga clic en
- 14. ¿Número de fila en BigQuery?
- 15. MySQL - Obtenga el número de fila en seleccionar
- 16. Cambiar jsp en el botón haga clic en
- 17. Impedir que la fila de la tabla haga clic en el evento para disparar al hacer clic en el botón dentro de la fila
- 18. Cocoa: haga clic con el botón secundario en NSStatusItem
- 19. Mostrando un menú emergente en QGraphicsScene, haga clic o haga clic con el botón derecho
- 20. Un botón activando otros botones haga clic en el evento
- 21. Vista parcial rinde en el botón haga clic
- 22. Capturar Haga clic con el botón derecho en HTML DIV
- 23. obtener el número de línea para el error en XCode
- 24. Reinicie el teléfono con un botón haga clic en
- 25. Obtener el número de línea de preg_match_all()
- 26. Cómo encontrar el número de fila y col de una celda en la tabla
- 27. Obtener el número de subprocesos RTS en el programa Haskell?
- 28. Obtener el número de bits en el char
- 29. Obtener el número total de elementos en el conjunto
- 30. Haga clic en el evento de opción
corrección leve ... [toques de evento] debe ser [event allTouches] – dizy
¡excelente! esto es exactamente lo que estoy buscando ... gracias ... – mshsayem