我有一个UICollectionView
包含在使用水平UICollectionViewFlowLayout
的UIViewController
中。我还使用了在我的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];