需要实现一个多行多列的Table并且单元格本身是按钮的。折腾了半天,弄了个可行版本,但是觉得很蛋疼,想看看有没有可以改进的地方或者别的做法,大家交流下。
我做的是一个多行两列的表格。原本是想做成多行表格,然后每个表格的cell为两个按钮,这也是在cocos2d-x2时期的主流做法。结果做好了之后,发现有按钮的地方就完全不能拖动了。
跟了一下,发现和现在的touch机制有关,无论是按钮,还是tableview都是sceneGraphPriority的listener,在新的触摸机制下,此类listener会根据树形结构吞touch。同时menu item肯定是tableview的孩子,所以menu item会先响应,然后直接吞掉了这个touch。
想了半天觉得不好下手,遂放弃,把按钮做成了普通和高亮两个sprite,然后根据tableview自己的回调来进行判断。这里遇到一个问题是回调只能知道这一行被按到,具体按到的是左边一列还是右边一列必须通过touch的坐标才能得到,但是这些回调里面都没有回调这个参数!!!
最后暴力的把cocos2dx的代码改了,把touch参数传进来,然后算是解决了这个问题。
有没有人想交流下别的做法?