Вот еще один вариант, который мне подходит. В методе делегата viewForFooter проверьте, является ли это последним разделом, и добавьте туда свой код. Этот подход пришёл в голову после осознания того, что willDisplayCell не учитывает нижние колонтитулы, если они у вас есть.
- (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");
}
Я считаю, что этот подход работает лучше всего, если вы ищете конечную загрузку для всего UITableView
, а не просто для видимых ячеек. В зависимости от ваших потребностей вам могут потребоваться только видимые ячейки, и в этом случае ответ folex является хорошим маршрутом.