Áúͼ½ÌÓý£ºÈçºÎʹÓÃʹÓÃUILayout²¼¾ÖÖÆ×÷¶Ô»°½çÃæ

Áúͼ½ÌÓý£ºÈçºÎʹÓÃʹÓÃUILayout²¼¾ÖÖÆ×÷¶Ô»°½çÃæ

1¡¢¸ÅÊö

ÉÏһƪÎÒÃÇÔڱ༭Æ÷ÖÐÉè¼ÆÁËÒ»¸ö¾²Ì¬µÄUIScrollView£¬¶øÍ¨³£ÎÒÃǶ¼ÐèÒªÔÚ³ÌÐòÖж¯Ì¬Ôö¼ÓÐÅÏ¢¡£²åÈëÔªËØµÄλÖÃÔõôȷ¶¨£¿ÔÚ3.0ÖÐUILayoutÒѾ­ÊµÏÖÁË»ù±¾µÄ²¼¾Ö£¬Ò»ÆðÀ´¿´¿´°É£º

2¡¢±à¼­½çÃæ

´ò¿ªCocoStudioµÄUIEditor ±à¼­Ò»¸ö½çÃæ£¬´´½¨Ò»¸öScrollView

ºÍÁ½¸öButton¡£ÒòΪScrollView¼Ì³Ð×ÔUILayout£¬ÕâÀïÎÒÃDzÉÓÃËü¡£²»Ì«Äܸ㶨µÄͯЬ¿É²Î¿¼£ºCocos2d-x 3.0 ¿ª·¢£¨Ê®ËÄ£©Ê¹ÓÃ

UIScrollView ʵÏÖ´óС²»Í¬ÎïÆ·Í϶¯Õ¹Ê¾

×¢Òâ´Ë´¦ScrollView

×ӿؼþ²¼¾ÖÖУ¬ÎÒÃÇÑ¡Ôñ¡°ÏßÐÔ×ÝÏò¡±£¬²¢ÇÒ

ÔÚ¡°ÌØÐÔ->»¬¶¯·½Ïò¡±Ò²Ñ¡ÔñΪ¡°vertical¡±¡£±à¼­ºÃºó±£´æµ¼³ö¡£

3¡¢¹ØÁª³ÌÐò

ÔËÐнű¾£¬´´½¨Ò»¸ötestLayout³ÌÐò£¬½«µ¼³öµÄÎļþ¸´ÖƵ½ResourceĿ¼Ï¡£ ÉùÃ÷Ò»¸öUILayout:

1. 2. 3. 4.

#include \ private:

gui::UILayout* m_layout;

¸ü¸Äinit:

1. 2. 3. 4. 5. 6. 7.

bool HelloWorld::init() {

////////////////////////////// // 1. super init first if ( !Layer::init() ) {

return false;

8. } 9.

10. Size visibleSize = Director::getInstance()->getVisibleSize(); 11. Point origin = Director::getInstance()->getVisibleOrigin(); 12.

13. //Load Layout

14. m_layout = dynamic_cast(cocostudio::GUIReader::shareReader()->widgetFromJsonFile(\));

15. auto layer = UILayer::create(); 16. layer->addWidget(m_layout);

17. this->addChild(layer); 18.

19. //set button react

20. UIButton* buttonA = dynamic_cast(m_layout->getChildByName(\

xtButtonA\));

21. buttonA->addTouchEventListener(this,toucheventselector(HelloWorld::touch

Button));

22. UIButton* buttonB = dynamic_cast(m_layout->getChildByName(\

xtButtonB\));

23. buttonB->addTouchEventListener(this,toucheventselector(HelloWorld::touch

Button));

24. 25.

26. return true; 27. }

Ìí¼ÓÒ»¸öÏìÓ¦º¯Êý

1. 2. 3. 4. 5. 6. 7. 8. 9.

void HelloWorld::touchButton(cocos2d::Object* obj,TouchEventType type) {

if(type == TOUCH_EVENT_ENDED) {

auto button = dynamic_cast(obj); if(strcmp(button->getName(),\) == 0) {

//add element on left addLeft();

10. } 11. else 12. {

13. //add element on right 14. addRight(); 15. } 16. } 17. }

±àÒëÔËÐУ¬¿ÉÒÔ¿´µ½ÈçϽçÃæ£º

4¡¢Ìí¼Ó¿Ø¼þ

ʵÏÖaddLeft() ºÍaddRight():

1. 2. 3. 4. 5. 6. 7. 8.

void HelloWorld::addLeft() {

auto layoutParameter = UILinearLayoutParameter::create();

layoutParameter->setGravity(UILinearGravity::LINEAR_GRAVITY_LEFT);

auto scrollView = ((UIScrollView*)m_layout->getChildByName(\));

UIWidget* widget = makeWords();

ÁªÏµ¿Í·þ£º779662525#qq.com(#Ìæ»»Îª@) ËÕICP±¸20003344ºÅ-4