如图所示,我的要求是避免在滚动时显示半个单元格....如果我滚动超过半个单元格的高度并释放,则单元格应该完成滚动到顶部..这有点类似to setPagingEnabled concept ...我想为每一行实现相同的概念..提前谢谢
答案 0 :(得分:0)
覆盖
- (CGPoint)targetContentOffsetForProposedContentOffset:(CGPoint)proposedContentOffset withScrollingVelocity:(CGPoint)velocity
在UICollectionViewlayout中。返回值是您要使用的偏移量,而不是用户滚动到的偏移量。假设您的行的高度为100
且当前proposedContentOffset
为(0,80)
,那么您可能希望返回(0,100)
,然后滚动您的集合视图20
更多点。此时,您上一行的单元格将不再可见。
答案 1 :(得分:0)
(void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset :( inout CGPoint *)targetContentOffset {
CGFloat proposedOffset = targetContentOffset-> y;
CGFloat heightOfPage = 65; CGFloat heightOfSpacing = 5.0f;
CGFloat numOfPage = lround(proposedOffset /(heightOfPage + heightOfSpacing));
CGFloat newY = numOfPage *(heightOfPage + heightOfSpacing);
//如果计算出的y大于我们相应调整的最大可能值,则
CGFloat contentHeight = _categoryCollectionView.contentSize.height;
CGFloat collectionViewHeight = _categoryCollectionView.bounds.size.height;
CGFloat maxY = contentHeight - collectionViewHeight;
if(newY> maxY)
{
newY = maxY;
}
targetContentOffset-> y =(newY); }