Как создать NSIndexPath для TableView
-
23-09-2019 - |
Вопрос
Мне нужно удалить строку 1 таблицы в функции, которую я определил.Для того, чтобы использовать deleteRowAtIndexPath
вы должны использовать IndexPath
с определенным разделом и строкой.Как я могу создать indexpath, подобный этому?
Массив с int {1} в качестве единственного элемента приведет к аварийному завершению работы;в сообщении NSLog указано, что раздел также должен быть определен.
* Редактировать -> Код, относящийся к удалению ячейки:
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];
Решение
Использование [NSIndexPath indexPathForRow:inSection:]
чтобы быстро создать путь к индексу.
Редактировать: В Swift 3:
let indexPath = IndexPath(row: rowIndex, section: sectionIndex)
Другие советы
indexPathForRow
это метод класса!
Код должен гласить:
NSIndexPath *myIP = [NSIndexPath indexPathForRow:0 inSection:0] ;
Обязательный ответ в Swift : NSIndexPath(forRow:row, inSection: section)
Вы заметите , что NSIndexPath.indexPathForRow(row, inSection: section)
недоступен в swift, и вы должны использовать первый метод для построения indexPath .
Для Swift 3 это сейчас: IndexPath(row: rowIndex, section: sectionIndex)