If you attack CCTableView to a scaled node, it won’t be able to detect cell touch event when you are touching some cells further from the origin.
The bug exists in the ccTouchEnded() in CCTableView.cpp
CCRect bb = this~~>boundingBox;
bb.origin = m_pParent~~>convertToWorldSpace(bb.origin);
if (bb.containsPoint(pTouch~~>getLocation) && m_pTableViewDelegate != NULL)
m_pTouchedCell = NULL;
boundingBox returns the original size for the tableview, let’s say it’s 960x640. pTouch~~>getLocation() returns the world position (on screen position) for the touch.
To check if the touch is inside the boundingBox(), we should not just convert the origin to world position, but also consider the scale factor (width, height). In fact, the correct fix is to convert the touched screen position to relative pos in the current tableview, which will make life easier.
Hope to have a fix soon. Thanks.