0

我先将 PageView 添加到场景中,然后添加 CheckBox。现在我无法单击复选框。触摸转到 pageView 滚动。如何解决这个问题?

COCOS2D_VERSION 0x00031501

这是我的代码:

bool FOURScrollPageScene::init()
{
    // 1. super init first
    if ( !Scene::init() )
    {
        return false;
    }

    createpageView();

    CreateCheckBox();


    return true;
}

void FOURScrollPageScene::createpageView()
{
    Size size(SW, SH);
    mPageView = PageView::create();
    mPageView->setDirection(PageView::Direction::HORIZONTAL);
    mPageView->setContentSize(size);

    mPageView->setPosition(Vec2(0.0f, 0.0f));
    mPageView->removeAllItems();
    mPageView->setIndicatorEnabled(true);
    mPageView->setGlobalZOrder(1);

    int pageCount = 3;
    for (int i = 0; i < pageCount; ++i)
    {
        Layout* layout = Layout::create();
        layout->setContentSize(size);

        auto logo = Sprite::create("MainMenu_Top.png") ;
        logo->setPosition(Vec2(SW*0.5f,SH*0.5));

        layout->addChild(logo, 1);


        Text* label = Text::create(StringUtils::format("page %d",(i+1)), "fonts/avenir-next-bold.ttf", 30);
        label->setColor(Color3B(192, 192, 192));
        label->setPosition(Vec2(layout->getContentSize().width / 2.0f, layout->getContentSize().height / 2.0f));
        layout->addChild(label);

        mPageView->insertCustomItem(layout, i);
    }

//    mPageView->scrollToItem(2);
    mPageView->scrollToPage(1);

    mPageView->addEventListenerPageView(this, pagevieweventselector(FOURScrollPageScene::pageViewEvent));

    this->addChild(mPageView);
}

void FOURScrollPageScene::CreateCheckBox()
{
    auto checkBox = CheckBox::create("check_box_normal.png",
                                 "check_box_normal_press.png",
                                 "check_box_active.png",
                                 "check_box_normal_disable.png",
                                 "check_box_active_disable.png",Widget::TextureResType::PLIST);
    checkBox->setPosition(Vec2(SW*0.5f, SH*0.3f));


    checkBox->addEventListener([&](Ref* sender, CheckBox::EventType type){
        switch (type)
        {
            case CheckBox::EventType::SELECTED:
                printf("Check Box Selected1\n");
                break;

            case CheckBox::EventType::UNSELECTED:
                printf("Check Box Unselected1\n");

                break;

            default:
                break;
        }
    });

    //checkBox->addEventListener(CC_CALLBACK_2(FOURScrollPageScene::selectedEvent, this));
    this->addChild(checkBox, 3);

}
4

1 回答 1

0

得到解决方案!

在下面的行评论后,触摸工作。

// mPageView->setGlobalZOrder(1);
于 2017-08-22T17:30:02.300 回答