为什么indexPathForItemAtPoint总是返回nil



我有一个UICollectionView包含在使用水平UICollectionViewFlowLayoutUIViewController中。我还使用了在我的UIStoryboard中创建的原型单元。我想创建一个自定义分页,所以我使用- (void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset

问题是,每次我试图得到indexPath对应于targetcontenttoffset(点在滚动视图中滚动将停止),集合视图返回nil,即使点是在集合视图contentSize内。

- (void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset
{
    NSIndexPath *indexPath = [_collectionView indexPathForItemAtPoint:(*targetContentOffset)];
    // Do something with indexPath    
}

我做错了什么?

collectionView还不知道targetcontenttoffset的indexPath。

你必须要求collectionViewLayout给你项目的属性,它将在这个位置布局。

试试这样写:

UICollectionViewLayoutAttributes *attribute = [_collectionView.collectionViewLayout layoutAttributesForElementsInRect:(CGRect){(*targetContentOffset).x, 0, 10, self.collectionView.bounds.size.height}][0];

相关内容

  • 没有找到相关文章

最新更新