第一次发博客,不对的地方还请大家包含~
OK,我们直接进入主题。最近在做一款cocos的游戏,准确的说是一款学习类软件,只不过用的是cocos。做的过程中遇到一个问题,就是在tableView中添加csb文件,这个csb文件中有按钮,当你试图滑动的时候点击事件都被按钮吞噬了。下面说说我的解决办法。
先上一波代码:此处代码为tableView中被添加的按钮的类
大家可以看到,m_button是我从csb文件中获取到的按钮,然后对m_button设置了 setSwallowTouches(false);设置为false,让点击事件可以向下传递,虽然这样可以实现很顺畅的滑动tableView,但是你会发现,在你滑动后手松开的一瞬间,就会选取上你一开始点击的那个按钮,我相信这个肯定不是你想要的,也不是用户想要的。接下来就说一下如何解决误操作的问题。
首先:在.h文件中设置一个变量,我是设置了一个整形变量,在构造函数中赋值为0;
其次:对m_button这个按钮进行moved、ended监听;当在移动tableView时候你的手在在按钮上,按钮此时会触发MOVED事件,这个时候将之前设置的整形变量赋值为1,然后在ENDED事件中进对这个变量判断;当这个整形变量为0时,触发你想要的结果,也就是触发点击后按钮的效果。如果为1时,不触发这段代码,将这个变量设置为0;
以上只是个人想到的解决方案,发出来跟大家分享。希望多指教,废话有点多