我正在开发一款使用Swift 2.2定位iOS 8.0+的应用。我有UICollectionView
根据设备方向显示不同数量的列。在viewWillTransitionToSize
中,我使用indexPathsForVisibleItems()
并找到最小的索引路径来确定第一个可见项目,并在方向更改时滚动到该项目。
除了indexPathsForVisibleItems()
包含半透明导航栏下的项目以便滚动可能会被几个单元格关闭之外,这很有效。有没有办法知道哪些单元格可见而不在导航栏下?
答案 0 :(得分:1)
如果要在旋转时滚动到特定单元格,可以在屏幕上获取该单元格的物理位置(获取半透明导航栏的高度和单元格的y坐标)并调用indexPathForItemAtPoint
。这将为您提供实际可见的第一个单元格(不在叠加层下)。然后你可以告诉UICollectionView
在旋转时滚动到那个单元格。