我需要限制 UIScrollView
中的弹跳,以便它在底部像往常一样弹跳,但不会超过顶部的 X 像素(底部无关紧要)。
有什么办法可以限制弹跳的大小吗?我认为也许委托(delegate)中的一个方法,例如我们 scrollViewWillScroll
(而不是 scrollViewDidScroll
)将允许我使用那些移动得比 top+X 更远的滚动事件,但我有至今找不到合适的。
有什么线索吗?
最佳答案
scrollViewDidScroll:
是正确的方法。简单地调整那里的 contentOffset。
此示例将顶部反弹限制为 20 像素:
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
if (scrollView.contentOffset.y < -20) {
scrollView.contentOffset = CGPointMake(0, -20);
}
}
请注意,当弹跳的原因是减速滑动而不是拖动时,在 View 滚动回 0,0 之前会有一点不自然的延迟。但我认为没有办法阻止这种情况。基本上 scrollView 仍然会完全弹跳,但不会显示它。
关于ios - 限制 iOS 中 UIScrollview 的弹跳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13842427/