我正在尝试使用扩展名
获取集合视图中单元格的索引路径扩展程序中的代码
extension InfiniteCollectionView
{
var centerPoint : CGPoint {
get {
return CGPoint(x: self.contentOffset.x + (CGRectGetWidth(self.bounds) * 0.5) , y: self.contentOffset.y + (CGRectGetWidth(self.bounds) * 0.5))
}
}
var centerCellIndexPath: NSIndexPath?{
return self.indexPathForItemAtPoint(self.centerPoint)
}
}
所以我可以得到像这样的中心索引路径
print(collectionVw.centerCellIndexPath)
但这仍然在返回nil,我似乎无法弄清楚为什么,值得注意的是扩展名在 InfiniteCollectionView 的类中,它被设置为collectionview上的自定义类而不是视图控制器。
答案 0 :(得分:0)
“如果在指定点找不到项目,则indexPathForItemAtPoint将返回nil”,您对中心点的计算可以返回空间中的一个点,因此请使用indexPathsForVisibleItems。 该文档还建议使用layoutAttributesForItemAtIndexPath: “使用此方法检索特定项目的布局信息。您应始终使用此方法,而不是直接查询布局对象。”