gpt4 book ai didi

ios - 在 UICollectionView 上调用 reloadData 后 contentSize 没有更新

转载 作者:IT王子 更新时间:2023-10-29 07:37:23 28 4
gpt4 key购买 nike

有谁知道为什么在 UICollectionView 上调用 reloadData 后 contentSize 没有立即更新?

如果您需要了解 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.
});

显然,这是一个相当脆弱的 hack,它对 Apple 的实现做出了假设,但到目前为止,它已被证明非常可靠。

有没有人知道为什么会发生这种情况的任何其他解决方法或知识?我正在讨论提交雷达,因为我不明白为什么他们不能在同一个运行循环中计算 contentSize。这就是 UITableView 的整个实现方式。

编辑:这个问题用于引用 block 内的 setContentOffset 方法,因为我想在我的应用程序中滚动 Collection View 。我已经删除了方法调用,因为人们的回答集中在为什么我不使用 scrollToItemAtIndexPath,为什么 contentSize 没有被更新。

最佳答案

要在重新加载后获取内容大小,请尝试调用布局对象的 collectionViewContentSize。这个对我有用。

关于ios - 在 UICollectionView 上调用 reloadData 后 contentSize 没有更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19103333/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com