我有以下代码来抓取UIScrollView到达其内容视图结束时的事件:
- (void) scrollViewDidEndDecelerating:(UIScrollView *) scrollView
{
float currentEndPoint = scrollView.contentOffset.y + scrollView.frame.size.height;
// CGPoint bottomOffset = CGPointMake(0, scrollView.contentSize.height - scrollView.bounds.size.height);
// [scrollView setContentOffset:bottomOffset animated:NO];
if (currentEndPoint >= scrollView.contentSize.height)
{
// We are at the bottom
我注意到当我滚动到底部时它会撞到它并反弹回来。
如果我加上这个:
CGPoint bottomOffset = CGPointMake(0, scrollView.contentSize.height - scrollView.bounds.size.height);
[scrollView setContentOffset:bottomOffset animated:NO];
然后滚动回到底部。
有没有办法让它在没有'#34;反弹'的情况下保持在最低点?就像它一旦击中底部,阻止它移动。
感谢。
答案 0 :(得分:5)
您应该取消选中scrollview的反弹属性。检查屏幕截图!
答案 1 :(得分:2)
我不太明白你的意思,我得到的是你想要在桌面视图到达底部时停止滚动。所以这是一个过程: -
- (void) scrollViewDidEndDecelerating:(UIScrollView *) scrollView
{
float currentEndPoint = scrollView.contentOffset.y + scrollView.frame.size.height;
if (currentEndPoint >= scrollView.contentSize.height)
{
CGPoint offset = scrollView.contentOffset;
offset.x -= 1.0;
offset.y -= 1.0;
[scrollView setContentOffset:offset animated:NO];
offset.x += 1.0;
offset.y += 1.0;
[scrollView setContentOffset:offset animated:NO];
}
}
答案 2 :(得分:0)
反弹问题,你可以通过
解决 var progressScrollView = UIScrollView()
progressScrollView.bounces = false