gpt4 book ai didi

ios - UICollectionView scrollToItemAtIndexPath : and get fresh cell position

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:01:27 26 4
gpt4 key购买 nike

我想将 Collection View 滚动到某个没有动画的屏幕外单元格,并在滚动后获取该单元格的位置。问题是 Collection View (视觉上)正确滚动,但单元格框架保持在屏幕外。这是我的代码:

NSIndexPath *path = [fetchedResultsController indexPathForObject:objectInCollection];
[collectionView scrollToItemAtIndexPath:path atScrollPosition:UICollectionViewScrollPositionCenteredVertically animated:NO];
[collectionView layoutSubviews]; // or 'layoutIfNeeded', doesn't matter
UICollectionViewCell *cell = [collectionView cellForItemAtIndexPath:path];
cellFrame = [cell.superview convertRect:cell.frame toView:nil]; // still not refreshed

我可以建议 Collection View 不立即应用滚动,所以我想找到应用滚动的方法。

---更新---

Collection View 在之前的 View Controller 中(所以我从代码滚动它然后弹出可见 View Controller )。

即使在以前 View Controller 的 viewDidAppear: 方法中,单元格框架仍保持在屏幕外。确切地说,[cell.superview convertRect:cell.frame toView:nil]; 返回的帧没有 Collection View 的 contentOffset。所以 CGRectOffset([cell.superview convertRect:cell.frame toView:nil], 0, -collectionView.contentOffset.y) 在屏幕上返回正确的单元格框架。

最佳答案

正如我从您的问题陈述中了解到的,您想将 View 外的某个单元格设置为可见状态。

单元格放置在UICollectionView计算时相同的位置

  • (void)准备布局
  • (void)layoutAttributes.. 方法。

在调用 invalidateLayout 或 reloaddata 之前,集合单元格的框架是固定的。只是您必须解决 collectionview 的 contentOffset 问题。只需获取单元格框架并设置 contentOffset,以便您的单元格框架在屏幕上可见。希望对您有所帮助。

关于ios - UICollectionView scrollToItemAtIndexPath : and get fresh cell position,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22073313/

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