我需要限制UIScrollView
中的弹跳,以便它像往常一样在底部弹跳,但不会超过顶部的X像素(底部无关紧要)。
有没有办法限制弹跳大小?我认为也许代理中的一个方法,例如我们scrollViewWillScroll
(而不是scrollViewDidScroll
)允许我使用那些比top + X更远的滚动事件,但我一直找不到合适的一个到目前为止。
任何线索?
答案 0 :(得分:13)
scrollViewDidScroll:
是正确的方法。简单地调整那里的contentOffset。
此示例将顶部反弹限制为20像素:
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
if (scrollView.contentOffset.y < -20) {
scrollView.contentOffset = CGPointMake(0, -20);
}
}
请注意,当弹跳的原因是减速滑动而不是拖动时,视图滚动回到0,0之前会有一些不自然的延迟。但我认为没有办法阻止这种情况。基本上,scrollView仍然会以完整的方式反弹,但它不会显示它。