Voici une autre option qui semble fonctionner pour moi. Dans la méthode déléguée viewForFooter, vérifiez s'il s'agit de la dernière section et ajoutez votre code à cet endroit. Cette approche m'est venue à l'esprit après avoir réalisé que willDisplayCell ne tient pas compte des pieds de page si vous en avez.
- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section
{
// Perform some final layout updates
if (section == ([tableView numberOfSections] - 1)) {
[self tableViewWillFinishLoading:tableView];
}
// Return nil, or whatever view you were going to return for the footer
return nil;
}
- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section
{
// Return 0, or the height for your footer view
return 0.0;
}
- (void)tableViewWillFinishLoading:(UITableView *)tableView
{
NSLog(@"finished loading");
}
Je trouve que cette approche fonctionne mieux si vous cherchez à trouver le chargement final pour l'ensemble de la UITableView
et pas seulement les cellules visibles. En fonction de vos besoins, il se peut que vous ne souhaitiez que les cellules visibles. La réponse de folex est une bonne route.