在我的 iOS 应用程序中,我遇到了在某些操作完成之前能够多次选择表格单元格的问题。
我的情况是我让用户输入一个值,然后点击提交。在尝试全面测试我的代码时,我注意到在我的活动指示器显示之前可以多次按下提交。这会导致多次提交。
我该如何解决这个问题?任何建议都会很棒。谢谢。
在我的 iOS 应用程序中,我遇到了在某些操作完成之前能够多次选择表格单元格的问题。
我的情况是我让用户输入一个值,然后点击提交。在尝试全面测试我的代码时,我注意到在我的活动指示器显示之前可以多次按下提交。这会导致多次提交。
我该如何解决这个问题?任何建议都会很棒。谢谢。
在tableView:didSelectRowAtIndexPath:
您可以禁用整个视图(包括所有 UITableViewCells)的用户交互:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
[self.view setUserInteractionEnabled:NO];
}
然后,无论您在哪里处理操作完成,重新启用视图:
-(void)yourOperationIsFinished{
[self.view setUserInteractionEnabled:YES];
}
您可以使用一个标志来指示单元格是否至少被选择过一次,最初是NO
. 一旦选择了表格视图单元格,tableView:didSelectRowAtIndexPath:
就会调用该方法。在此方法中,您可以将标志设置为YES
.
如果您还实现了tableView:willSelectRowAtIndexPath:
之前调用的方法tableView:didSelectRowAtIndexPath:
,您可以返回提交的indexPath
,只要您的标志是NO
,或者nil
在第一次调用之后返回tableView:didSelectRowAtIndexPath:
。在这种情况下,单元格将不再被选中。