小编3rd*_*Bot的帖子

重写scrollViewWillEndDragging时,UIScrollView并不总是为减速设置动画

这是我的覆盖代码 - 它只是计算捕捉到的位置:

- (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;
}
Run Code Online (Sandbox Code Playgroud)

当我用手指按住一两秒钟来拖动滚动视图然后抬起我的手指时,它通常会动画到位.然而,当我快速"轻弹"它很少动画 - 它只是捕捉到targetContentOffset.我试图模拟默认的分页行为(尝试捕捉到自定义位置除外).

有任何想法吗?

paging animation custompaging uiscrollview snapping

7
推荐指数
1
解决办法
1903
查看次数

重写scrollViewWillEndDragging时,UICollectionView并不总是为减速设置动画

我正在为我的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;
}
Run Code Online (Sandbox Code Playgroud)

paging custompaging uiscrollview ipad uicollectionview

4
推荐指数
1
解决办法
2793
查看次数