拖动后取消UIScrollView弹跳

1ac*_*lus 6 core-animation uiscrollview bounce ios

我有一个水平的UIScrollView.我想做一个"拉动 - 重置"动画的变体,在那里我一直拉过滚动视图的内容大小的右边缘,释放我的手指,并让滚动视图飞回(0,0 )内容抵消.

我的委托方法如下所示:

- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate {
    //check if it exceeds a certain critical value
    if (scrollView.contentOffset.x - (scrollView.contentSize.width - IMAGE_WIDTH) > 80) {
        [self doAnimatedScrollTo:CGPointMake(0, 0)];
    }
}
Run Code Online (Sandbox Code Playgroud)

哪里doAnimatedScrollTo:是必要的自定义动画方法,因为我想控制动画的持续时间.

虽然这有效,但似乎动画排队了.首先发生UIScrollView"反弹"动画,然后我的动画发生.

有没有办法取消反弹动画,保持内容偏移"捕捉"回来,然后执行我的动画?

iOS*_*DEV 3

尝试这个

- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate {
  //check if it exceeds a certain critical value
  if (scrollView.contentOffset.x - (scrollView.contentSize.width - IMAGE_WIDTH) > 80) {
    [scrollView setContentOffset:CGPointMake(0, 0) animated:YES];
  }
}
Run Code Online (Sandbox Code Playgroud)