UIScrollView和targetContentOffset无法正常工作

5

我希望UIScrollView始终可以滚动回特定的点。我通过编写以下代码实现了这个功能:

   - (void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset 
{
    (*targetContentOffset).x = 0.0f;
}

除了一个例外,它的表现非常好。当我滚动到视图的末尾(弹跳开始),然后松开手指时,视图会平稳地滚动一小段距离,然后停止并立即跳转到我设定的位置(没有动画效果)。

只要不滚动到滚动视图的末尾,这种情况就不会发生。

以下是我如何初始化UIScrollView:

  scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, 284, frame.size.height)];
  scrollView.backgroundColor = [UIColor clearColor];
  scrollView.delegate = self;

  [scrollView setContentSize:CGSizeMake(285,frame.size.height)];
  [self addSubview:scrollView];

  UIEdgeInsets inset = scrollView.contentInset;
  inset.left = 60;
  inset.right = 60;
  [scrollView setContentInset:inset];
1个回答

0

当你到达滚动视图内容的边界时,弹跳效果是默认行为,你可以通过将 bounces 属性设置为 NO 来关闭它:

yourscrollView.bounces = NO;

我相信这只是你在这里面临的问题。


也许msmialko希望视图通过正常的弹跳效果达到新的targetContentOffset。 - The Windwaker
禁用弹跳是一种修复方式,但会产生另一个问题:它实际上会以非常缓慢的速度滚动到正确的偏移量。目前还不知道如何解决这个问题... - Tulleb

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接