PuzzleSDK
UIPageViewDynamicAddAndRemoveTest类 参考

#include <UIPageViewTest.h>

+ 类 UIPageViewDynamicAddAndRemoveTest 继承关系图:
+ UIPageViewDynamicAddAndRemoveTest 的协作图:

Public 成员函数

 CREATE_FUNC (UIPageViewDynamicAddAndRemoveTest)
 
 UIPageViewDynamicAddAndRemoveTest ()
 
 ~UIPageViewDynamicAddAndRemoveTest ()
 
virtual bool init () override
 
void pageViewEvent (cocos2d::Ref *sender, cocos2d::ui::PageView::EventType type)
 
void onButtonClicked (cocos2d::Ref *sender, cocos2d::ui::Widget::TouchEventType type)
 
- Public 成员函数 继承自 UIScene
 UIScene ()
 
 ~UIScene ()
 
virtual void onEnter () override
 
- Public 成员函数 继承自 TestCase
 TestCase ()
 
 ~TestCase ()
 
virtual std::string title () const
 
virtual std::string subtitle () const
 
virtual Type getTestType () const
 
virtual float getDuration () const
 
virtual std::string getExpectedOutput () const
 
virtual std::string getActualOutput () const
 
virtual void restartTestCallback (cocos2d::Ref *sender)
 
virtual void nextTestCallback (cocos2d::Ref *sender)
 
virtual void priorTestCallback (cocos2d::Ref *sender)
 
virtual void onBackCallback (cocos2d::Ref *sender)
 
void setTestSuite (TestSuite *testSuite)
 
TestSuitegetTestSuite () const
 
float getRunTime () const
 
void setTestCaseName (const std::string &name)
 
std::string getTestCaseName () const
 
const cocos2d::Label * getSubtitleLable () const
 
const cocos2d::MenuItemImage * getRestartTestItem () const
 

Protected 属性

cocos2d::ui::Text * _displayValueLabel
 
- Protected 属性 继承自 UIScene
cocos2d::Layer * _uiLayer
 
cocos2d::ui::Layout * _widget
 
cocos2d::ui::Text * _sceneTitle
 
- Protected 属性 继承自 TestCase
cocos2d::MenuItemImage * _priorTestItem
 
cocos2d::MenuItemImage * _restartTestItem
 
cocos2d::MenuItemImage * _nextTestItem
 
cocos2d::Label * _titleLabel
 
cocos2d::Label * _subtitleLabel
 

额外继承的成员函数

- Public 类型 继承自 TestCase
enum class  Type { ROBUSTNESS , UNIT , GRAPHICAL_STATIC , MANUAL }
 
- Public 属性 继承自 TestCase
CC_CONSTRUCTOR_ACCESS __pad0__: virtual bool init() override
 

详细描述

在文件 UIPageViewTest.h82 行定义.

构造及析构函数说明

◆ UIPageViewDynamicAddAndRemoveTest()

UIPageViewDynamicAddAndRemoveTest::UIPageViewDynamicAddAndRemoveTest ( )

在文件 UIPageViewTest.cpp451 行定义.

452: _displayValueLabel(nullptr)
453{
454
455}
cocos2d::ui::Text * _displayValueLabel

◆ ~UIPageViewDynamicAddAndRemoveTest()

UIPageViewDynamicAddAndRemoveTest::~UIPageViewDynamicAddAndRemoveTest ( )

在文件 UIPageViewTest.cpp457 行定义.

458{
459}

成员函数说明

◆ CREATE_FUNC()

UIPageViewDynamicAddAndRemoveTest::CREATE_FUNC ( UIPageViewDynamicAddAndRemoveTest  )

◆ init()

bool UIPageViewDynamicAddAndRemoveTest::init ( )
overridevirtual

重载 UIScene .

在文件 UIPageViewTest.cpp461 行定义.

462{
463 if (UIScene::init())
464 {
465 Size widgetSize = _widget->getContentSize();
466
467 // Add a label in which the dragpanel events will be displayed
468 _displayValueLabel = Text::create("Click Buttons on the Left", "fonts/Marker Felt.ttf", 32);
469 _displayValueLabel->setAnchorPoint(Vec2(0.5f, -1.0f));
470 _displayValueLabel->setPosition(Vec2(widgetSize.width / 2.0f,
471 widgetSize.height / 2.0f +
472 _displayValueLabel->getContentSize().height * 1.5));
473 _uiLayer->addChild(_displayValueLabel);
474
475 // Add the black background
476 Text* alert = Text::create("PageView Dynamic Modification", "fonts/Marker Felt.ttf", 30);
477 alert->setColor(Color3B(159, 168, 176));
478 alert->setPosition(Vec2(widgetSize.width / 2.0f, widgetSize.height / 2.0f - alert->getContentSize().height * 3.075f));
479 _uiLayer->addChild(alert);
480
481 Layout* root = static_cast<Layout*>(_uiLayer->getChildByTag(81));
482
483 Layout* background = dynamic_cast<Layout*>(root->getChildByName("background_Panel"));
484
485 // Create the page view
486 PageView* pageView = PageView::create();
487 pageView->setDirection(ui::PageView::Direction::VERTICAL);
488 pageView->setContentSize(Size(240.0f, 130.0f));
489 pageView->setAnchorPoint(Vec2(0.5f,0.5f));
490 Size backgroundSize = background->getContentSize();
491 pageView->setPosition(Vec2(widgetSize.width / 2.0f ,widgetSize.height / 2.0f));
492 pageView->setBackGroundColor(Color3B::GREEN);
493 pageView->setBackGroundColorType(Layout::BackGroundColorType::SOLID);
494 pageView->setIndicatorEnabled(true);
495 pageView->setIndicatorSpaceBetweenIndexNodes(10);
496
497 int pageCount = 4;
498 for (int i = 0; i < pageCount; ++i)
499 {
500 HBox* outerBox = HBox::create();
501 outerBox->setContentSize(Size(240.0f, 130.0f));
502
503 for (int k = 0; k < 2; ++k)
504 {
505 VBox* innerBox = VBox::create();
506
507 for (int j = 0; j < 3; j++)
508 {
509 Button *btn = Button::create("cocosui/animationbuttonnormal.png",
510 "cocosui/animationbuttonpressed.png");
511 btn->setName(StringUtils::format("button %d", j));
512
513 innerBox->addChild(btn);
514 }
515
516 LinearLayoutParameter *parameter = LinearLayoutParameter::create();
517 parameter->setMargin(Margin(0.0f,0.0f,100.0f,0.0f));
518 innerBox->setLayoutParameter(parameter);
519
520 outerBox->addChild(innerBox);
521
522 }
523
524 pageView->insertCustomItem(outerBox, i);
525 }
526
527 pageView->addEventListener((PageView::ccPageViewCallback)CC_CALLBACK_2(UIPageViewDynamicAddAndRemoveTest::pageViewEvent, this));
528 pageView->setName("pageView");
529 _uiLayer->addChild(pageView);
530
531 //add buttons
532 auto button = Button::create();
533 button->setPositionNormalized(Vec2(0.12f,0.7f));
534 button->setTitleText("Add A Page");
535 button->setZoomScale(0.3f);
536 button->setPressedActionEnabled(true);
537 button->setTitleColor(Color3B::RED);
538 button->addClickEventListener([=](Ref* sender)
539 {
540 HBox* outerBox = HBox::create();
541 outerBox->setContentSize(Size(240.0f, 130.0f));
542
543 for (int k = 0; k < 2; ++k)
544 {
545 VBox* innerBox = VBox::create();
546 for (int j = 0; j < 3; j++)
547 {
548 Button *btn = Button::create("cocosui/animationbuttonnormal.png",
549 "cocosui/animationbuttonpressed.png");
550 btn->setName(StringUtils::format("button %d", j));
551 innerBox->addChild(btn);
552 }
553
554 LinearLayoutParameter *parameter = LinearLayoutParameter::create();
555 parameter->setMargin(Margin(0.0f,0.0f,100.0f,0.0f));
556 innerBox->setLayoutParameter(parameter);
557 outerBox->addChild(innerBox);
558 }
559
560 pageView->pushBackCustomItem(outerBox);
561 _displayValueLabel->setString(StringUtils::format("page count = %ld", static_cast<long>(pageView->getItems().size())));
562 CCLOG("current page index = %zd", pageView->getCurrentPageIndex());
563 });
564 _uiLayer->addChild(button);
565
566 auto button2 = Button::create();
567 button2->setPositionNormalized(Vec2(0.12f,0.5f));
568 button2->setTitleText("Remove A Page");
569 button2->setZoomScale(0.3f);
570 button2->setPressedActionEnabled(true);
571 button2->setTitleColor(Color3B::RED);
572 button2->addClickEventListener([=](Ref* sender)
573 {
574 if (pageView->getItems().size() > 0)
575 {
576 pageView->removeItem(pageView->getItems().size()-1);
577 }
578 else
579 {
580 CCLOG("There is no page to remove!");
581 }
582 _displayValueLabel->setString(StringUtils::format("page count = %ld", static_cast<long>(pageView->getItems().size())));
583 CCLOG("current page index = %zd", pageView->getCurrentPageIndex());
584
585 });
586 _uiLayer->addChild(button2);
587
588 auto button3 = Button::create();
589 button3->setPositionNormalized(Vec2(0.12f,0.3f));
590 button3->setTitleText("Remove All Pages");
591 button3->setZoomScale(0.3f);
592 button3->setPressedActionEnabled(true);
593 button3->setTitleColor(Color3B::RED);
594 button3->addClickEventListener([=](Ref* sender)
595 {
596 pageView->removeAllItems();
597 _displayValueLabel->setString(StringUtils::format("page count = %ld", static_cast<long>(pageView->getItems().size())));
598 CCLOG("current page index = %zd", pageView->getCurrentPageIndex());
599
600 });
601 _uiLayer->addChild(button3);
602
603 auto button4 = (ui::Button*)button3->clone();
604 button4->setTitleText("Scroll to Page4");
605 button4->setPositionNormalized(Vec2(0.85f, 0.5f));
606 button4->addClickEventListener([=](Ref* sender){
607 pageView->scrollToItem(3);
608 CCLOG("current page index = %zd", pageView->getCurrentPageIndex());
609 });
610 _uiLayer->addChild(button4);
611
612 return true;
613 }
614 return false;
615}
void pageViewEvent(cocos2d::Ref *sender, cocos2d::ui::PageView::EventType type)
cocos2d::Layer * _uiLayer
Definition: UIScene.h:44
virtual bool init() override
Definition: UIScene.cpp:46
cocos2d::ui::Layout * _widget
Definition: UIScene.h:45

引用了 _displayValueLabel, UIScene::_uiLayer, UIScene::_widget, UIScene::init() , 以及 pageViewEvent().

+ 函数调用图:

◆ onButtonClicked()

void UIPageViewDynamicAddAndRemoveTest::onButtonClicked ( cocos2d::Ref *  sender,
cocos2d::ui::Widget::TouchEventType  type 
)

◆ pageViewEvent()

void UIPageViewDynamicAddAndRemoveTest::pageViewEvent ( cocos2d::Ref *  sender,
cocos2d::ui::PageView::EventType  type 
)

在文件 UIPageViewTest.cpp618 行定义.

619{
620 switch (type)
621 {
622 case PageView::EventType::TURNING:
623 {
624 PageView* pageView = dynamic_cast<PageView*>(pSender);
625
626 _displayValueLabel->setString(StringUtils::format("page = %ld", static_cast<long>((pageView->getCurrentPageIndex() + 1))));
627 }
628 break;
629
630 default:
631 break;
632 }
633}

引用了 _displayValueLabel.

被这些函数引用 init().

+ 这是这个函数的调用关系图:

类成员变量说明

◆ _displayValueLabel

cocos2d::ui::Text* UIPageViewDynamicAddAndRemoveTest::_displayValueLabel
protected

在文件 UIPageViewTest.h96 行定义.

被这些函数引用 init() , 以及 pageViewEvent().


该类的文档由以下文件生成: