tableView中添加按钮触发不了点击事件的解决办法

第一次发博客,不对的地方还请大家包含~

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;

      以上只是个人想到的解决方案,发出来跟大家分享。希望多指教,废话有点多吐舌头

发布了9 篇原创文章 · 获赞 4 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/CN_DS/article/details/51487790
今日推荐