如何为TableView创建NSIndexPath


243

我需要在已定义的函数中删除表的第1行。为了使用,deleteRowAtIndexPath您必须使用已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];

Answers:


646

使用[NSIndexPath indexPathForRow:inSection:]快速创建一个索引路径。

编辑:在Swift 3:

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

迅捷5

IndexPath(row: 0, section: 0)

118

indexPathForRow 是一个类方法!

该代码应显示为:

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

18

Swift中的强制性答案: NSIndexPath(forRow:row, inSection: section)

您会注意到该NSIndexPath.indexPathForRow(row, inSection: section)功能不是很快可用的,必须使用第一种方法来构造indexPath。


17

对于Swift 3,现在是: IndexPath(row: rowIndex, section: sectionIndex)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.