获取indexPathsForVisibleItems()不包括半透明导航栏下的索引

时间:2016-07-21 00:43:07

标签: ios uicollectionview orientation-changes

我正在开发一款使用Swift 2.2定位iOS 8.0+的应用。我有UICollectionView根据设备方向显示不同数量的列。在viewWillTransitionToSize中,我使用indexPathsForVisibleItems()并找到最小的索引路径来确定第一个可见项目,并在方向更改时滚动到该项目。

除了indexPathsForVisibleItems()包含半透明导航栏下的项目以便滚动可能会被几个单元格关闭之外,这很有效。有没有办法知道哪些单元格可见而不在导航栏下?

1 个答案:

答案 0 :(得分:1)

如果要在旋转时滚动到特定单元格,可以在屏幕上获取该单元格的物理位置(获取半透明导航栏的高度和单元格的y坐标)并调用indexPathForItemAtPoint。这将为您提供实际可见的第一个单元格(不在叠加层下)。然后你可以告诉UICollectionView在旋转时滚动到那个单元格。