在iOS中限制UIScrollview的弹跳

Hid*_*Dev 7 uiscrollview bounce ios

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

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

有线索吗?

Mat*_*uch 13

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

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

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

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