2013-11-19 3 views
1

Я создаю CCScrollview в моем приложенииcocos2d-x дети 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); 

теперь, когда я добавить ребенок к Scrollview так:

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

Кто-нибудь знает, почему это происходит? или как я могу это исправить?

ответ

0

Это происходит потому, что 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 в контейнер и добавить всех ваших детей в этот контейнер.

 Смежные вопросы

  • Нет связанных вопросов^_^