UICollectionView
中包含的UIViewController
使用水平UICollectionViewFlowLayout
。我也在使用在UIStoryboard
中创建的原型单元格。我想创建一个自定义分页,所以我使用的是- (void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset
。
问题在于,每当我尝试获取与targetContentOffset相对应的indexPath
(滚动视图中滚动停止的点)时,即使该点清楚,集合视图也会返回nil在集合视图中的contentSize。
- (void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset
{
NSIndexPath *indexPath = [_collectionView indexPathForItemAtPoint:(*targetContentOffset)];
// Do something with indexPath
}
我做错了什么?
答案 0 :(得分:0)
collectionView还不知道targetContentOffset的indexPath。
你必须要求collectionViewLayout为你提供该位置的布局的属性。
尝试这样的事情:
UICollectionViewLayoutAttributes *attribute = [_collectionView.collectionViewLayout layoutAttributesForElementsInRect:(CGRect){(*targetContentOffset).x, 0, 10, self.collectionView.bounds.size.height}][0];