БЕЗ АНИМАЦИИ
Я на iOS11, использую простой стиль просмотра таблицы с липкими заголовками и каким-то образом единственный способ, которым я получил это, чтобы правильно работать, чтобы иметьпосле перезагрузки табличное представление было на самом верху без каких-либо странных мерцаний / анимации, это было использовать эти методы в таком порядке, где ВСЕ они необходимы:
[self.tableView setContentOffset:CGPointZero animated:NO];
[self.tableView reloadData];
[self.tableView layoutIfNeeded];
[self.tableView setContentOffset:CGPointZero animated:NO];
Я серьезно, что все это необходимо,хотя кажется, что первая строка вообще не актуальна.Ах да, также очень важно , НЕ используйте это:
self.tableView.contentOffset = CGPointZero;
Вы могли бы подумать, что это то же самое, что "setContentOffset animated: FALSE", но, очевидно, это не так!Apple относится к этому методу по-другому, и в моем случае это работало только при использовании полного метода с анимированным: FALSE.
с анимацией
Я такжехотел попробовать это с хорошей прокруткой анимации наверх.Там методы смещения контента, похоже, по-прежнему вызывают странное поведение анимации.Единственный способ заставить меня работать с хорошей анимацией после некоторой проб и ошибок - эти методы в точном порядке:
[self.tableView reloadData];
[self.tableView layoutIfNeeded];
[self.tableView scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0] atScrollPosition:UITableViewScrollPositionTop animated:TRUE];
Предупреждение, убедитесь, что у вас есть хотя бы 1 строка перед запуском последней строки кодачтобы избежать сбоев :)
Надеюсь, это когда-нибудь кому-нибудь поможет!