gpt4 book ai didi

objective-c - iOS6 UICollectionView 和 UIPageControl - 如何获得可见单元格?

转载 作者:IT老高 更新时间:2023-10-28 11:48:31 25 4
gpt4 key购买 nike

在研究 iOS6 新功能时,我收到了一个关于 UICollectionView 的问题。 .
我目前正在使用 Flow 布局测试它,并将滚动方向设置为水平,启用滚动和分页。我已将其大小设置为与我的自定义单元格完全相同,因此它可以一次显示一个,并且通过横向滚动它,用户将看到其他现有单元格。

效果很好。

现在我想添加和UIPageControl到我创建的 Collection View ,因此它可以显示哪个单元格是可见的以及那里有多少个单元格。

构建页面控件相当简单,定义了 frame 和 numberOfPages。

作为问号,我遇到的问题是如何获取当前在 Collection View 中可见的单元格,以便它可以更改页面控件的 currentPage。

我尝试过委托(delegate)方法,例如 cellForItemAtIndexPath,但它是用来加载单元格的,而不是显示它们。 didEndDisplayingCell 当一个单元格不再显示时触发,这是我需要的相反事件。

似乎-visibleCells 和-indexPathsForVisibleItems, Collection View 方法,对我来说是正确的选择,但我遇到了另一个问题。什么时候触发?

在此先感谢,希望我说得足够清楚,以便你们能够理解我!

最佳答案

您必须将自己设置为 UIScrollViewDelegate 并实现 scrollViewDidEndDecelerating: 方法,如下所示:

Objective-C

- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
{
CGFloat pageWidth = self.collectionView.frame.size.width;
self.pageControl.currentPage = self.collectionView.contentOffset.x / pageWidth;
}

swift

func scrollViewDidEndDecelerating(_ scrollView: UIScrollView) {

let pageWidth = self.collectionView.frame.size.width
pageControl.currentPage = Int(self.collectionView.contentOffset.x / pageWidth)
}

关于objective-c - iOS6 UICollectionView 和 UIPageControl - 如何获得可见单元格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13176333/

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