Кто-нибудь знает, почему contentSize не обновляется сразу после вызова reloadData в UICollectionView?
Если вам нужно знать contentSize, лучшая работа, которую я нашел, это следующее:
[_collectionView reloadData];
double delayInSeconds = 0.0001;
dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(delayInSeconds * NSEC_PER_SEC));
dispatch_after(DISPATCH_TIME_NOW, dispatch_get_main_queue(), ^(void)
{
// TODO: Whatever it is you want to do now that you know the contentSize.
});
Очевидно, что это довольно хрупкий взлом, который делает предположения о внедрении Apple, но до сих пор он оказался достаточно надежным.
Есть ли у кого-нибудь другие способы обхода или знания о том, почему это происходит? Я обсуждаю отправку радара, потому что я не могу понять, почему они не могут вычислить contentSize в том же цикле запуска. Вот как UITableView работал для всей своей реализации.
EDIT: этот вопрос используется для ссылки на метод setContentOffset внутри блока, потому что я хочу прокрутить представление коллекции в моем приложении. Я удалил вызов метода, потому что ответы людей были сосредоточены на том, почему я не использовал scrollToItemAtIndexPath внутри того, почему contentSize не обновляется.