Cómo crear NSIndexPath para TableView


243

Necesito eliminar la fila 1 de una tabla en una función que he definido. Para usarlo deleteRowAtIndexPathdebe usar un IndexPathcon una sección y una fila definidas. ¿Cómo puedo crear un indexpath como este?

Una matriz con int {1} como su único miembro se bloqueará; el mensaje NSLog indica que la sección también debe definirse.

* Editar -> Código relacionado con la eliminación de celdas:

    NSIndexPath *myIP = [[NSIndexPath alloc] indexPathForRow:0 inSection:0];
    NSArray *myArray = [[NSArray alloc] initWithObjects:myIP, nil];
//  [self.tableView beginUpdates];
    [self.tableView deleteRowsAtIndexPaths:myArray withRowAnimation:UITableViewRowAnimationFade];
//  [self.tableView endUpdates];

Respuestas:


646

Use [NSIndexPath indexPathForRow:inSection:]para crear rápidamente una ruta de índice.

Editar: en Swift 3:

let indexPath = IndexPath(row: rowIndex, section: sectionIndex)

Swift 5

IndexPath(row: 0, section: 0)

118

indexPathForRow Es un método de clase!

El código debería leer:

NSIndexPath *myIP = [NSIndexPath indexPathForRow:0 inSection:0] ;

18

Respuesta obligatoria en Swift: NSIndexPath(forRow:row, inSection: section)

Notará que NSIndexPath.indexPathForRow(row, inSection: section)no está disponible en swift y debe usar el primer método para construir indexPath.


17

Para Swift 3 es ahora: IndexPath(row: rowIndex, section: sectionIndex)

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.