有啥方法可以知道哪个集合视图单元位于特定点?
Posted
技术标签:
【中文标题】有啥方法可以知道哪个集合视图单元位于特定点?【英文标题】:Is there any way to know which collection view cell is at a specific point?有什么方法可以知道哪个集合视图单元位于特定点? 【发布时间】:2012-11-15 19:16:29 【问题描述】:我有一个 CGPoint,我想知道我的集合视图中的哪个单元格当前包含该点。有什么简单的方法可以做到这一点还是我必须编写自己的方法?
【问题讨论】:
【参考方案1】:UICollectionView
s 我用的不多,但是有一个方法看起来很完美:
- (NSIndexPath *)indexPathForItemAtPoint:(CGPoint)point;
传递给方法的点必须在集合视图的坐标系内。你可以这样做:
CGPoint convertedPoint = [collectionView convertPoint:point fromView:viewThatYouGotThePointFrom];
获取正确的点,如果你得到的点不是来自集合视图。
【讨论】:
【参考方案2】://due to the point passed in possibly not containing a cell IndexPath is an optional
func indexPathForCellAtPoint(_ point : CGPoint) -> IndexPath?
return collectionView?.indexPathForItem(at: self.view.convert(point, to: collectionView!))
override func scrollViewDidScroll(_ scrollView: UIScrollView)
let topLeftCell = CGPoint(x: 1, y: 60)
if let indexPath = indexPathForCellAtPoint(topLeftCell)
print(indexPath.section,indexPath.row)
【讨论】:
以上是关于有啥方法可以知道哪个集合视图单元位于特定点?的主要内容,如果未能解决你的问题,请参考以下文章