UICollectionView 如何找到单元格结束的行

UICollectionView How to find the row that a cell ends up in

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

override func collectionView(didUpdateFocusIn context: ...)

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

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

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

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

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

一个例子是,如果你有一个纵向方向,视图宽度为 800,8 个单元格每个宽度为 100,并且每个单元格之间的 space 是 10,那么你的第 8 个单元格将在第二个行。

一种解决方案是根据(每行的view.frame.width / numOfCells)计算单元格的宽度,并计算每个单元格之间的space。