在didEndDragging后取消UIScrollView反弹动画?

问题描述:

我有一个水平的UIScrollView。我想实现一个自定义动画,而不是默认的反弹,其中我一直拉过滚动视图的内容大小的右边缘,滚动视图将在释放手指后飞回内容偏移量(0,0)在didEndDragging后取消UIScrollView反弹动画?

有没有办法取消反弹动画,保持内容偏移重置,然后执行我的动画?

我找到了解决这个问题的办法。只需使用UIScrollView委托方法:

- (void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset 

即兴思考,未经测试的代码,抢contentOffset,然后将它带回setContentOffset:... animated:NO。这应该取消正在进行的动画并立即转换到给定的位置。由于给出的位置是当前位置,因此应该取消动画。

+0

感谢您的回复。我试过这个。但它不能覆盖反弹动画。 – 102errors

+0

避免这个问题,你试过将'bounces'设置为'NO',因此没有动画可以取消吗?如果没有,你可以尝试在图层上使用'removeAllAnimations'。这两种想法都有用吗? – Tommy