如何阻止UIScrollView到达底部时滚动

时间:2015-05-15 05:53:31

标签: ios objective-c ios8 uiscrollview setcontentview

我有以下代码来抓取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;反弹'的情况下保持在最低点?就像它一旦击中底部,阻止它移动。

感谢。

3 个答案:

答案 0 :(得分:5)

您应该取消选中scrollview的反弹属性。检查屏幕截图!

enter image description here

答案 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