cocos2dx 某縮放的頁面 CCTableView最後一個標籤沒法點中

有一個二級界面,在ipad4下面放大到1.6倍,直接對最外層的CCLayer縮放的,裏面包含有CCTableView。結果運行的時候沒法選中到最後一個標籤,不管總的標籤是2個仍是更多,單步調試,發現到ccTouchEnded的時候判斷的點擊範圍有問題,修改爲下面的就行了。具體緣由沒有時間解釋了,你們看看估計也明白了。this

原:spa

void CCTableView::ccTouchEnded(CCTouch *pTouch, CCEvent *pEvent)
{
    if (!this->isVisible()) {
        return;
    }

    if (m_pTouchedCell){
        CCRect bb = this->boundingBox();
        bb.origin = m_pParent->convertToWorldSpace(bb.origin);

        if (bb.containsPoint(pTouch->getLocation()) && m_pTableViewDelegate != NULL)
        {
            m_pTableViewDelegate->tableCellUnhighlight(this, m_pTouchedCell);
            m_pTableViewDelegate->tableCellTouched(this, m_pTouchedCell);
        }

        m_pTouchedCell = NULL;
    }

    CCScrollView::ccTouchEnded(pTouch, pEvent);
}

新:調試

void CCTableView::ccTouchEnded(CCTouch *pTouch, CCEvent *pEvent)
{
    if (!this->isVisible()) {
        return;
    }

    if (m_pTouchedCell){

        CCPoint touchLocation = pTouch->getLocation(); // Get the touch position
        touchLocation = m_pParent->convertToNodeSpace(touchLocation);

        CCRect bb = this->boundingBox();
        //bb.origin = m_pParent->convertToWorldSpace(bb.origin);

        if (bb.containsPoint(touchLocation) && m_pTableViewDelegate != NULL)
        {
            m_pTableViewDelegate->tableCellUnhighlight(this, m_pTouchedCell);
            m_pTableViewDelegate->tableCellTouched(this, m_pTouchedCell);
        }

        m_pTouchedCell = NULL;
    }

    CCScrollView::ccTouchEnded(pTouch, pEvent);
}
相關文章
相關標籤/搜索