gpt4 book ai didi

ios - 如何在 IOS 中以编程方式滚动 UICollectionViewCell?

转载 作者:技术小花猫 更新时间:2023-10-29 10:28:51 31 4
gpt4 key购买 nike

我有一个垂直的 UICollectionView,每个单元格占据整个 self.view.frame 我可以轻松向上滑动以翻页到下一个单元格,但我想只需按一下按钮即可完成相同的操作。

我试过使用:

- (void)setContentOffset:(CGPoint)contentOffset animated:(BOOL)animated

和:

- (void)scrollRectToVisible:(CGRect)rect animated:(BOOL)animated

它们可以工作,但会暂时“遮挡”currentCell 以呈现 nextCell,而滑动会在过渡期间显示两个单元格。

理想情况下我想使用:

- (void)scrollToItemAtIndexPath:(NSIndexPath *)indexPath atScrollPosition:(UICollectionViewScrollPosition)scrollPosition animated:(BOOL)animated

但我不知道如何访问 nextCell 的 indexPath...我试过:

NSIndexPath *nextIndexPath = [_collectionView indexPathForItemAtPoint:CGPointMake(25, (_collectionView.frame.size.height-25)*(_currentIndexRowForCellOnScreen+1))];

_currentIndexRowForCellOnScreenUICollectionView 首次出现在屏幕上的 indexPath.row:

- (UICollectionViewCell*)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath

但是当我把它放入:

- (NSIndexPath *)indexPathForCell:(UICollectionViewCell *)cell

它在第一个 Cell 之后返回 NULL,并且没有动画....

任何方向将不胜感激。感谢您的宝贵时间。

最佳答案

假设您的 collectionView 仅包含 1 个部分,并且假设每个项目都占据整个框架,那么您可以这样做;

  NSArray *visibleItems = [self.collectionView indexPathsForVisibleItems];
NSIndexPath *currentItem = [visibleItems objectAtIndex:0];
NSIndexPath *nextItem = [NSIndexPath indexPathForItem:currentItem.item + 1 inSection:currentItem.section];
[self.collectionView scrollToItemAtIndexPath:nextItem atScrollPosition:UICollectionViewScrollPositionTop animated:YES];

关于ios - 如何在 IOS 中以编程方式滚动 UICollectionViewCell?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21540084/

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