Como criar NSIndexPath para TableView


243

Preciso excluir a linha 1 de uma tabela em uma função que defini. Para usar, deleteRowAtIndexPathvocê deve usar um IndexPathcom uma seção e uma linha definidas. Como posso criar um caminho de índice como este?

Uma matriz com o int {1} como seu único membro falhará; a mensagem NSLog indica que a seção também precisa ser definida.

* Editar -> Código relacionado à exclusão de célula:

    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];

Respostas:


646

Usar [NSIndexPath indexPathForRow:inSection:] para criar rapidamente um caminho de índice.

Editar: No Swift 3:

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

Swift 5

IndexPath(row: 0, section: 0)

118

indexPathForRow é um método de classe!

O código deve ler:

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

18

Resposta obrigatória no Swift: NSIndexPath(forRow:row, inSection: section)

Você notará que NSIndexPath.indexPathForRow(row, inSection: section)não está disponível rapidamente e você deve usar o primeiro método para construir o indexPath.


17

Para Swift 3, agora é: IndexPath(row: rowIndex, section: sectionIndex)

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.