Ios 如何停止COCOS2DV3中CCScrollView对象的滚动动画

Ios 如何停止COCOS2DV3中CCScrollView对象的滚动动画,ios,animation,cocos2d-iphone,scroll,ccscrollview,Ios,Animation,Cocos2d Iphone,Scroll,Ccscrollview,在我的iOS版cocos2d v3应用程序中,我对如何停止滚动CCScrollView对象的动画产生了误解。我尝试了对其方法的一些组合调用,但没有成功,例如 [_scrollView setScrollPosition:_scrollView.scrollPosition animated:NO]; [_scrollView stopAllActions]; [_dataListNode stopAllActions]; 其中dataListNode是CCScrollView的ContentN

在我的iOS版cocos2d v3应用程序中,我对如何停止滚动CCScrollView对象的动画产生了误解。我尝试了对其方法的一些组合调用,但没有成功,例如

[_scrollView setScrollPosition:_scrollView.scrollPosition animated:NO];
[_scrollView stopAllActions];
[_dataListNode stopAllActions];
其中dataListNode是CCScrollView的ContentNode


正确的方法是什么

我通过修补CCScrollView对象找到了停止滚动动画的唯一方法

// reveal hidden velocity property
@property (nonatomic, assign) CGPoint velocity;
// this forces animation to stop
_scrollView.velocity = CGPointZero;

我仍在寻找更好的方法

CCScrollView,它是ScrollView(cocos2d-xv3),它有一个方法setContentOffsetInDuration 所以


我会成功的。请注意,持续时间-0.001f是我所说的足够小的值,几乎可以立即看到动画。

那么,您基本上是说希望滚动视图滚动,然后一旦它到达某个位置,它会因为任何原因停止滚动吗?如果是这样,您是否尝试过在到达该点时创建一个CGPoint,将其与scrollview的位置相等,然后将scrollview设置为该位置?我不确定将scrollview设置为自己的位置是否真的有效…请告诉我您是否进行了一次尝试您可能还想尝试将属性“setInertiaScrollEnabled”和“touchEnabled”组合设置为false…我想它会立即停止滚动,然后您也将无法再滚动它,因为它不是触控启用的。更方便的方法是创建类别CCScrollView+Stop
svContent->setContentOffsetInDuration(svContent->getContentOffset(), 0.001f);