Comment puis-je savoir quand [UITableView setEditing: YES animated: YES] est terminé?Comment puis-je savoir quand une animation UITableView est terminée?
Je ne veux pas donner de contexte, parce que je veux éviter que quelqu'un me donne des solutions de contournement qui ne m'intéressent pas. Ce que je veux est d'appeler ce qui précède, puis avoir une fonction distincte appelée lorsque l'animation est terminée.
Je suis édité le post pour donner un contexte et quelques solutions de contournement. À l'origine, j'ai défini SetEditing et rechargé immédiatement les données de la table.
[tableView setEditing:YES animated:YES];
[tableView reloadData];
Le problème est que la table rechargements avant que l'animation commence, et ainsi de l'animation est jamais vu.
Voici quelques solutions de contournement différentes:
[tableView setEditing:YES animated:YES];
[self performSelector:@selector(ReloadTable) withObject:nil afterDelay:1.0];
Cela fonctionne, mais si je reçois le retard incorrect, alors il fera mauvais. J'ai donc besoin de savoir quel est le délai, ce que je peux comprendre, mais nous ne sommes pas assurés que le délai sera toujours le même.
isEditing = YES;
[tableView reloadData];
[tableView setEditing:YES animated:YES];
Cela pourrait fonctionner, mais la table se comporte différemment selon que nous sommes en mode d'édition. Je dois donc utiliser ma propre variable isEditing au lieu de la norme UITableView.editing. Je préférerais ne pas avoir à créer une nouvelle variable isEditing booléenne.
[tableView setEditing:YES animated:YES];
[tableView insertRowsAtIndexPaths:path withRowAnimation:UITableViewRowAnimationTop];
Cela fonctionne presque bien, mais en mode d'édition de la première ligne devrait avoir le UITableViewCellEditingStyleInsert, tandis que les autres lignes se UITableViewCellEditingStyleDelete. Et avec le code ci-dessus, le style d'édition est défini AVANT que la ligne ne soit ajoutée. Par conséquent, la deuxième ligne se termine par UITableViewCellEditingStyleInsert.
+1 Cela a fonctionné * parfaitement *. – Isaac
J'ai essayé beaucoup de suggestions sur d'autres threads à propos de ce problème, et c'est le premier qui a fonctionné! – Marty
Quelle bonne réponse! – Swindler