在iOS中限制UIScrollview的弹跳

我需要限制UIScrollView中的弹跳,以便它像往常一样在底部弹跳,但不会超过顶部的X像素(底部无关紧要).

有没有办法限制弹跳大小?我认为也许委托中的一个方法,例如我们scrollViewWillScroll(而不是scrollViewDidScroll)将允许我使用那些比顶部X更远的滚动事件,但到目前为止我一直找不到合适的滚动事件.

有什么线索吗?

解决方法

scrollViewDidScroll:这是正确的方法.在那里简单调整contentOffset.

此示例将顶部反弹限制为20像素:

- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
    if (scrollView.contentOffset.y < -20) {
        scrollView.contentOffset = CGPointMake(0,-20);
    }
}

请注意,在弹跳的原因是减速滑动而不是拖动时,视图滚动回到0,0之前会有一些不自然的延迟.但我认为没有办法阻止这种情况.基本上,scrollView仍然以完整的方式反弹,但它不会显示它.

相关文章

当我们远离最新的 iOS 16 更新版本时,我们听到了困扰 Apple...
欧版/美版 特别说一下,美版选错了 可能会永久丧失4G,不过只...
一般在接外包的时候, 通常第三方需要安装你的app进行测...
前言为了让更多的人永远记住12月13日,各大厂都在这一天将应...