在didEndDragging后取消UIScrollView反弹动画?
问题描述:
我有一个水平的UIScrollView
。我想实现一个自定义动画,而不是默认的反弹,其中我一直拉过滚动视图的内容大小的右边缘,滚动视图将在释放手指后飞回内容偏移量(0,0)。在didEndDragging后取消UIScrollView反弹动画?
有没有办法取消反弹动画,保持内容偏移重置,然后执行我的动画?
我找到了解决这个问题的办法。只需使用UIScrollView
委托方法:
- (void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset
答
即兴思考,未经测试的代码,抢contentOffset
,然后将它带回setContentOffset:... animated:NO
。这应该取消正在进行的动画并立即转换到给定的位置。由于给出的位置是当前位置,因此应该取消动画。
感谢您的回复。我试过这个。但它不能覆盖反弹动画。 – 102errors
避免这个问题,你试过将'bounces'设置为'NO',因此没有动画可以取消吗?如果没有,你可以尝试在图层上使用'removeAllAnimations'。这两种想法都有用吗? – Tommy