Ios 如何在编辑UITableViewCell时保持选中该单元格?

Ios 如何在编辑UITableViewCell时保持选中该单元格?,ios,object,uitableview,Ios,Object,Uitableview,我正在制作一个应用程序,作为一个类的一部分跟踪不同的学生对象。每个学生都有学生编号、姓名和余额。我已经为它的工作方式创建了所有后端逻辑,并且我已经在UITableView中显示了所有学员的逻辑。然后我有一个按钮,当按下该按钮时,将增加/减少所选学生的货币价值。唯一的问题是,每次我在表视图中选择一个学生,然后按下递增/递减货币按钮,它都会取消选择单元格。我希望该单元格保持选中状态,这样我就可以一直按递增/递减货币按钮。我还需要在每次按下递增/递减货币按钮时更新该单元格,以便在单元格中显示该学生的货

我正在制作一个应用程序,作为一个类的一部分跟踪不同的学生对象。每个学生都有学生编号、姓名和余额。我已经为它的工作方式创建了所有后端逻辑,并且我已经在UITableView中显示了所有学员的逻辑。然后我有一个按钮,当按下该按钮时,将增加/减少所选学生的货币价值。唯一的问题是,每次我在表视图中选择一个学生,然后按下递增/递减货币按钮,它都会取消选择单元格。我希望该单元格保持选中状态,这样我就可以一直按递增/递减货币按钮。我还需要在每次按下递增/递减货币按钮时更新该单元格,以便在单元格中显示该学生的货币上升或下降

这是一个递增/递减货币按钮的代码:

- (IBAction)twentyDollarButton:(UIButton *)sender
{
        self.currentStudent.studentMoney += self.signValue * 20;
        [self updateUI];
}

- (EconoClassStudent *)currentStudent
{
    if (!_currentStudent) {
        _currentStudent = [[EconoClassStudent alloc] init];
    } else {
        NSIndexPath *indexPath = [self.testTableView indexPathForSelectedRow];

        NSArray *instructorClass = [self.instructorClass classAsArray];
        if (indexPath && [instructorClass count] > 0) {
            EconoClassStudent *student = instructorClass[indexPath.row];
            _currentStudent = student;
        }
    }

    return _currentStudent;
}
我的更新UI方法:

- (void)updateUI
{
    NSIndexPath *indexPath = [self.testTableView indexPathForSelectedRow];
    NSArray *indexPathsArray = [[NSArray alloc] initWithObjects:indexPath, nil];


    self.studentLabel.text = [NSString stringWithFormat:@"%u. %@\n$%d",
                              self.currentStudent.studentNumber,
                              self.currentStudent.studentName,
                              self.currentStudent.studentMoney];



    [self.testTableView reloadRowsAtIndexPaths:indexPathsArray withRowAnimation:NO];
}
一切都正常工作,但我只希望当前单元格在按下“金钱”按钮时保持选中状态


任何帮助都会很好!多谢各位

reloadRowsAtIndexPaths:withRowAnimation:
调用时取消选择单元格

由于您在
-(void)updateUI
中已经有
indepath
,并且没有修改tableview,请通过调用

[self.testTableView selectRowAtIndexPath:indexPath animated:NO scrollPosition:UITableViewScrollPositionNone];

在XIB中,在
重新加载RowsatindExpaths:WithRowsAnimation:

之后,对于TableView,您可以将属性“编辑”设置为“编辑期间无选择”或“编辑期间单一选择”

此外,您还可以手动调用:

[self.testTableView SelectRowatineXpath:IndexPath动画:是scrollPosition:UITableViewScrollPositionNone]

在你的更新中。
希望这会有所帮助

这正是我需要的!真是太棒了!这也是一个非常简单的修复,我只是忽略了它。另外一个问题是,如何通过点击来取消对给定单元格的选择?实际上,它的工作方式与现在完全相同,但如果您点击当前选定的单元格,您将取消选择它。再次感谢!这是同样的策略。只需使用[self.testTableView取消rowatinexpath:indexath:NO];我明白这一点,我想我更多的是指放在哪里。是否存在每次选择单元格时都会调用的方法?因为我显然不能把这个方法放到UpdateUI中。是的,有。签出tableView:DidSelectRowatingIndexPath:(),它是UITableViewDelegate的一部分。我以为你已经在使用它了。我确实在使用它,而且我在发表评论后就看到了这种方法。非常感谢你的帮助!我真的很感激!