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。
所以,我有一个 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。