ScrollView可以监听滚动结束事件吗?

通过Cocos Studio添加ScrollView控件,然后在代码中使用addEventListener(const ccScrollViewCallback& callback);方式添加事件监听,这种方式只能监听 SCROLLING 的事件,如果我想在滚动完成后做些事情,应该怎么实现?哪位大神能给点思路?

virtual bool onTouchBegan(Touch *touch, Event *event) override;
virtual void onTouchMoved(Touch *touch, Event *event) override;
virtual void onTouchEnded(Touch *touch, Event *event) override;
virtual void onTouchCancelled(Touch *touch, Event *event) override;

额,这几个方法应该怎么用?能详细点不?
我现在能够想到的方法是声明一个EventListenerTouchOneByOne对象,添加到Scrollview的父节点上,然后在onTouchEnded中判断touch坐标是否在ScrollView中来处理,不知道这样处理是不是合理?有没有更简单的方式?

yes,your are right!
不过,layer有layer的触摸,scrollview有scrollview的触摸,虽然都可以使用,反正你能解决就好。
想知道更多,可以参考test工程。

额,还是有点问题,手指横向扫动,离开屏幕后,Scrollview还会滚动一点距离,这样在onTouchEnded中通过getInnerContainer()->getPositionX()方式得到的坐标应该是不精确的吧,这个问题可以有方法解决吗?


暂时找到个方法,取消惯性运动setInertiaScrollEnabled(false),另外,上面提到的监听方式,需要设置Scrollview的setSwallowTouches(false);才能起作用