有没有办法让行处于编辑模式?
我知道我可以在这里- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
但是我该如何解决这个问题?
NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow];
不起作用,因为它返回NULL ...
当我的意思是编辑模式意味着该行已向左移动并在右侧显示删除...
提前致谢。
答案 0 :(得分:2)
indexPathForSelectedRow
不起作用,因为未选中该行。
定义一个属性以保存当前选择删除的行:
@property (nonatomic, strong) NSIndexPath *indexPathOfDeleteRow;
然后使用tableView:commitEditingStyle:forRowAtIndexPath
更新属性:
- (void) tableView:(UITableView *)tableView
commitEditingStyle:(UITableViewCellEditingStyle)editingStyle
forRowAtIndexPath:(NSIndexPath *)indexPath
{
if (editingStyle == UITableViewCellEditingStyleDelete)
self.indexPathOfDeleteRow = indexPath;
}
答案 1 :(得分:1)
您可以使用此UITableView
扩展程序:
extension UITableView {
var indexPathForEditingRow: NSIndexPath? {
return indexPathsForEditingRows.first
}
var indexPathsForEditingRows: [NSIndexPath] {
return visibleCells.flatMap { cell -> NSIndexPath? in
guard let indexPath = indexPathForCell(cell) where cell.editingStyle != .None else {
return nil
}
return indexPath
}
}
}