cocos2d-x CCScrollview дети не затронуты точками привязки?
Я создаю CCScrollview в моем приложении
scrollView = CCScrollView::create();
scrollView->retain();
scrollView->setViewSize(CCSize(size.width,size.height - 100));
scrollView->setContentSize(CCSize(size.width,1000));
scrollView->setDirection( kCCScrollViewDirectionVertical );
scrollView->setPosition(ccp( 0,50 ) );
scrollView->setContainer( this->getParent() );
this->addChild(scrollView, 5);
теперь, когда я добавляю ребенка в представление прокрутки, вот так:
titleLabel = CCLabelTTF::create("Squares", "Thonburi", 20);
titleLabel->setPosition(ccp(0, scrollView->getViewSize().height*0.90));
scrollView->addChild(titleLabel, 1);
это делает в правильном месте, которое 0,50 с точкой привязки на 0,0
если я изменю опорную точку, хотя сказать 1,1, как так
titleLabel->setAnchorPoint(ccp(1, 1));
он по-прежнему отображается так, как если бы он имел точку привязки 0,0
Кто-нибудь знает, почему это происходит? или как я могу это исправить?
1 ответ
Это происходит потому, что CCScrollView сбрасывает опорную точку для добавленных дочерних элементов в представление контейнера:
void CCScrollView::addChild(CCNode * child, int zOrder, int tag)
{
child->ignoreAnchorPointForPosition(false);
child->setAnchorPoint(ccp(0.0f, 0.0f));
if (m_pContainer != child) {
m_pContainer->addChild(child, zOrder, tag);
} else {
CCLayer::addChild(child, zOrder, tag);
}
}
Я на самом деле не уверен, зачем это нужно. Чтобы исправить это, сначала добавьте CCNode в контейнер и добавьте всех своих детей в этот контейнер.