原文http://blog.csdn.net/playddt/article/details/8707703
//int __indexFromOffset(CCPoint offset);//默认的方法
//unsigned int _indexFromOffset(CCPoint offset);
//modif on 20140805 解决CCTableView 点击空白单元格依然会响应的问题
//增加了isTouchBegan判断,true时表明是在TouchBegan中调用,此时index返回-1(默认返回的0,0表示返回的是第一个单元格,但我们在这里需要返回-1表示无效)
int __indexFromOffset(CCPoint offset, bool isTouchBegan);
unsigned int _indexFromOffset(CCPoint offset, bool isTouchBegan);
主要是修改下面的地方:
int CCTableView::__indexFromOffset(CCPoint offset, bool isTouchBegan)
{
//...以上都相同
if (low <= 0 && isTouchBegan == false) {//modif on 20140805 在这里判断点击时不返回0,点击空白时直接返回-1
return 0;
}
return -1;
}
然后在onTouchBegan中修改:
bool CCTableView::ccTouchBegan(CCTouch *pTouch, CCEvent *pEvent)
{
index = this->_indexFromOffset(point, true);//这里将第二个参数填入true
}
在其它地方调用 _indexFromOffset 的方法时 传入false 来判断就OK啦。