7

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

有没有办法限制弹跳大小?我认为也许像我们这样的委托中的一个方法scrollViewWillScroll(而不是scrollViewDidScroll)可以让我使用那些比 top+X 移动得更远的滚动事件,但到目前为止我一直找不到合适的滚动事件。

有什么线索吗?

4

1 回答 1

17

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

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

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

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

于 2012-12-12T15:07:03.357 回答