Swift 检查collectionView单元格在collectionView上的显示是否超过50%
我有一个UICollectionView(3*3网格),所以当我上下滚动时,有没有办法检测collection view单元格在屏幕上显示的高度是否超过其高度的50%Swift 检查collectionView单元格在collectionView上的显示是否超过50%,swift,uicollectionview,uicollectionviewcell,uicollectionviewlayout,Swift,Uicollectionview,Uicollectionviewcell,Uicollectionviewlayout,我有一个UICollectionView(3*3网格),所以当我上下滚动时,有没有办法检测collection view单元格在屏幕上显示的高度是否超过其高度的50% let visibleRect = CGRect(origin: collectionView.contentOffset, size: collectionView.bounds.size) let visiblePoint = CGPoint(x: visibleRect.minX, y: visibleRect.midY)
let visibleRect = CGRect(origin: collectionView.contentOffset, size: collectionView.bounds.size)
let visiblePoint = CGPoint(x: visibleRect.minX, y: visibleRect.midY)
let visibleIndexPath = collectionView.indexPathForItem(at: visiblePoint)
我试过这个,但似乎不起作用。有人对此有解决办法吗?您可以要求
@property(nonatomic) CGPoint contentOffset;
UIScrollView的,因为UICollectionView继承自它们
别忘了你的细胞有一个CALayer,它也知道可见的矩形
CGRect visiblerect = cell.layer.visibleRect;
if (visiblerect.size.height > (cell.frame.size.height * 0.5)) {
// do stuff when cell is more visible then half its size
}
谢谢,伙计,是的,我知道contentOffset,但如何检查单元格在屏幕上的显示是否超过50%?当您知道单元格的frame.size.height和单元格周围的边距时,collectionView.contentSize;你甚至可以问UICollectionView visibleCells并做简单的数学运算。哈哈。对不起,编辑了我的答案。这是一个目标。。很容易翻译成swift。我想啊,太好了,我现在知道它是怎么工作的了,谢谢!还有一件事,我尝试使用cell.layer.visibleRect,但是对于显示小于50%的单元格,它总是返回单元格的实际高度?