我需要限制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仍然以完整的方式反弹,但它不会显示它.