iOS アプリで、アクションが完了する前に表のセルを複数回選択できるという問題に遭遇しました。
私の状況では、ユーザーに値を入力してから送信を押してもらいます。コードを完全にテストしようとしているときに、アクティビティ インジケーターが表示される前に送信を複数回押すことができることに気付きました。これにより、複数の送信が発生します。
テーブルでこれを修正するにはどうすればよいですか? どんな提案も素晴らしいでしょう。ありがとう。
iOS アプリで、アクションが完了する前に表のセルを複数回選択できるという問題に遭遇しました。
私の状況では、ユーザーに値を入力してから送信を押してもらいます。コードを完全にテストしようとしているときに、アクティビティ インジケーターが表示される前に送信を複数回押すことができることに気付きました。これにより、複数の送信が発生します。
テーブルでこれを修正するにはどうすればよいですか? どんな提案も素晴らしいでしょう。ありがとう。
ビュー全体 (すべての UITableViewCells を含む) のユーザー操作を無効にtableView:didSelectRowAtIndexPath:
することができます。
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
[self.view setUserInteractionEnabled:NO];
}
次に、操作の完了を処理している場所で、ビューを再度有効にします。
-(void)yourOperationIsFinished{
[self.view setUserInteractionEnabled:YES];
}
セルが少なくとも 1 回選択されているかどうかを示すフラグを使用できますNO
。テーブル ビューのセルが選択されるとすぐに、メソッドtableView:didSelectRowAtIndexPath:
が呼び出されます。このメソッドでは、フラグを に設定できますYES
。の前に呼び出される
メソッドも実装する場合は、フラグが である限り、送信されたものを返すか、またはへの最初の呼び出しの後に返すことができます。この場合、セルは選択されなくなります。tableView:willSelectRowAtIndexPath:
tableView:didSelectRowAtIndexPath:
indexPath
NO
nil
tableView:didSelectRowAtIndexPath: