Áúͼ½ÌÓý£ºÈçºÎʹÓÃʹÓÃ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
15. auto layer = UILayer::create(); 16. layer->addWidget(m_layout);
17. this->addChild(layer); 18.
19. //set button react
20. UIButton* buttonA = dynamic_cast
xtButtonA\));
21. buttonA->addTouchEventListener(this,toucheventselector(HelloWorld::touch
Button));
22. UIButton* buttonB = dynamic_cast
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
//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();