Ios 如何在编辑UITableViewCell时保持选中该单元格?
我正在制作一个应用程序,作为一个类的一部分跟踪不同的学生对象。每个学生都有学生编号、姓名和余额。我已经为它的工作方式创建了所有后端逻辑,并且我已经在UITableView中显示了所有学员的逻辑。然后我有一个按钮,当按下该按钮时,将增加/减少所选学生的货币价值。唯一的问题是,每次我在表视图中选择一个学生,然后按下递增/递减货币按钮,它都会取消选择单元格。我希望该单元格保持选中状态,这样我就可以一直按递增/递减货币按钮。我还需要在每次按下递增/递减货币按钮时更新该单元格,以便在单元格中显示该学生的货币上升或下降 这是一个递增/递减货币按钮的代码:Ios 如何在编辑UITableViewCell时保持选中该单元格?,ios,object,uitableview,Ios,Object,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的一部分。我以为你已经在使用它了。我确实在使用它,而且我在发表评论后就看到了这种方法。非常感谢你的帮助!我真的很感激!