UICollectionView 如何找到单元格最终所在的行

Posted

技术标签:

【中文标题】UICollectionView 如何找到单元格最终所在的行【英文标题】:UICollectionView How to find the row that a cell ends up in 【发布时间】:2018-06-12 23:01:16 【问题描述】:

所以,我有一个 tvOS 应用程序,其中有一个 UICollectionView。我可以使用 以下委托回调到下一个焦点单元格的 IndexPath。

override func collectionView(didUpdateFocusIn context: ...)

CollectionView 有一个 Section 和 n 个单元格。所以,当我得到一个 [0,8] 的 IndexPath 时,所有这一切都告诉我它是从左边算起的第 9 个项目。但是,第一行只有 8 个单元格,所以实际上它是第二行左侧的第一项。

我如何确定它实际呈现在哪一行?

【问题讨论】:

【参考方案1】:

你能展示你的代码、行为和期望的行为吗? 屏幕截图也会有所帮助。

如果我正确理解您的问题...

决定单元格出现在哪一行的是以下因素: 1.视图的大小 2. 单元格的大小 3.collectionViewLayout: UICollectionViewLayout, minimumInteritemSpacingForSectionAt 4.每个单元格之间的间距

例如,如果您是纵向的,视图宽度为 800,8 个单元格的宽度为 100,每个单元格之间的间距为 10,那么您的第 8 个单元格将位于第二行。

一种解决方案是根据 (view.frame.width / numOfCells on each row) 考虑单元格的宽度,并考虑每个单元格之间的空间。

【讨论】:

我会上传代码,但我想你已经回答了。我必须对单元格宽度及其缓冲区空间等进行数学计算...我希望听到我错过了系统委托回调中的某些内容,即具有特定 IndexPath 的单元格降落的位置,但听起来不像它。

以上是关于UICollectionView 如何找到单元格最终所在的行的主要内容,如果未能解决你的问题,请参考以下文章

如何获取UICollectionView中选中的单元格索引

当 UICollectionView 和 UITableView 没有行/单元格时,“未找到行”

2023-02-11:给你两个整数 m 和 n 。构造一个 m x n 的网格,其中每个单元格最开始是白色, 请你用 红绿蓝 三种颜色为每个单元格涂色。所有单元格都需要被涂色, 涂色方案需要满足:

如何获取位于 UICollectionView 中心的单元格的 indexPath

如何通过 UICollectionView 访问 UICollectionViewCell?

如何在UICollectionView Swift 4.0中正确调整和扩展单元格的大小和居中