gpt4 book ai didi

ios - UICollectionView 滚动到一个项目

转载 作者:可可西里 更新时间:2023-11-01 04:16:09 24 4
gpt4 key购买 nike

我正在尝试记住 UICollectionView 中的项目 (indexPath.item) 的索引,稍后,在替换并恢复 View 后,滚动到该内存的项目。

在内存item时,indexPath、indexPath.item是:

indexPath is: <NSIndexPath 0x1d87b380> 2 indexes [0, 32]
indexPath.item is: 32

稍后为该项目重新计算 indexPath 时,indexPath 和 indexPath.item 是:

indexPath is: <NSIndexPath 0x1d8877b0> 2 indexes [0, 32]
item is: 32

我尝试使用以下方法滚动到内存的位置:

NSIndexPath *iPath = [NSIndexPath indexPathForItem:i inSection:0];
[self collectionView scrollToItemAtIndexPath:iPath atScrollPosition:UICollectionViewScrollPositionCenteredVertically animated:NO];

我收到一个错误:

attempt to scroll to invalid index path

最佳答案

你调用[self.collectionView reloadData];在尝试滚动到 indexPath 之前?

如果您想在 reloadData 完成时重新定位 indexPath,请将代码放在这样的 block 中:

[UIView animateWithDuration:0
animations: ^{ [self.collectionView reloadData]; }
completion:^(BOOL finished) {
NSIndexPath *iPath = [NSIndexPath indexPathForItem:i inSection:0];
[self collectionView scrollToItemAtIndexPath:iPath atScrollPosition:UICollectionViewScrollPositionCenteredVertically animated:NO];
}];

在调用scrollToItemAtIndexPath之前,您还可以检查section中的项目数以确保i有效,否则您仍然会得到相同的错误。

关于ios - UICollectionView 滚动到一个项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17171072/

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