我正在为我的 UICollectionView 创建自定义分页。我希望底部的一些单元格悬挂在屏幕边缘,但是,通过常规分页,滚动到下一页意味着如果页面底部的一半单元格正在显示,它只会显示另一半在下一页。我想让单元格挂在末端,但停止分页,以便悬挂在屏幕上的单元格清晰可见。
所以,为此我覆盖了函数 - (void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset
如果我拖动一两秒钟,它会按预期工作,但是,我正在尝试模拟启用分页时效果很好的“轻弹”。当我轻弹 UICollectionView 时,它会跳转到 targetContentOffset,而不是对其进行动画处理。
我该如何防止这种情况?
这是我的代码:
- (void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset {
if(targetContentOffset->y < 400) {
targetContentOffset->y = 0;
return;
}
int baseCheck = 400;
while(baseCheck <= 10000) {
if(targetContentOffset->y > baseCheck && targetContentOffset->y < baseCheck + 800) {
targetContentOffset->y = (baseCheck + 340);
return;
}
baseCheck += 800;
}
targetContentOffset->y = 0;
}