禁止CCTableView点击空白的部分触发点击最后一个单元格事件

从点击坐标计算点击单元格的时候,原有的_indexFromOffset自动把返回的值重定到0~size-1范围内,所以无论点到控件内部的任何位置都会弹出一个单元格事件。

改法是1.增加一个方法:(原有的方法的另一个bug是-cell_size~0的范围和0~cell_size算出来的index都是0)

int CCTableView::indexOfTouch(CCPoint offset){ const CCSize cellSize = m_pDataSource->cellSizeForTable(this); if (m_eVordering == kCCTableViewFillTopDown) { offset.y = this->getContainer()->getContentSize().height- offset.y - cellSize.height; } int index = 0; float __index =0.0; switch (this->getDirection()) { case kCCScrollViewDirectionHorizontal: __index = offset.x/cellSize.width; if (__index<0) __index-=1; index = __index; break; default: __index = offset.y/cellSize.height; if (__index<0) __index-=1; index = __index; break; } return index;}
2. 修改bool CCTableView::ccTouchBegan(CCTouch *pTouch,CCEvent *pEvent)
index = this->_indexFromOffset(point);改为=>index = this->indexOfTouch(point);