在允许在编辑模式下选择的 tableView 上,当我调用 [tableView setEditing:NO animated:YES] 并退出编辑模式时,如何找到选定的单元格?
没有调用 didDeselectRowAtIndexPath:,还有其他我忽略的方法吗?
编辑解决方案:
单元格永远不会被取消选择,因此 indexPathForSelectedRow 仍然返回正确的值。很公平。
在允许在编辑模式下选择的 tableView 上,当我调用 [tableView setEditing:NO animated:YES] 并退出编辑模式时,如何找到选定的单元格?
没有调用 didDeselectRowAtIndexPath:,还有其他我忽略的方法吗?
编辑解决方案:
单元格永远不会被取消选择,因此 indexPathForSelectedRow 仍然返回正确的值。很公平。
您可以为此使用 GestureRecognizer。
尝试这个 :
UISwipeGestureRecognizer *gestureObj = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(Method:)];
[gestureObj setDirection:UISwipeGestureRecognizerDirectionRight];
[self.tableview addGestureRecognizer:gestureObj];
-(void)Method:(UISwipeGestureRecognizer *)gestureRecognizer {
CGPoint p = [gestureRecognizer locationInView:self.tableview];
NSIndexPath *indexPath = [self.tableview indexPathForRowAtPoint:p];
if (indexPath == nil)
{
[self setEditing:YES animated:YES];
NSLog(@"slide on table view but not on a row");
}
else
{
[self setEditing:YES animated:YES];
NSLog(@"slide on table view at row %d", indexPath.row);
}
UITableViewCell *cell = [self.MYArray objectAtIndex:indexPath.row];
}
答案是该行永远不会被取消选择。
indexPathForSelectedRow 在实际退出编辑模式之前仍然有效。