在iOS中限制UIScrollview的弹跳

时间:2012-12-12 14:58:25

标签: ios uiscrollview bounce

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

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

任何线索?

1 个答案:

答案 0 :(得分:13)

scrollViewDidScroll:是正确的方法。简单地调整那里的contentOffset。

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

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

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