Cocos2dx: CheckBox над PageView не трогать
Сначала я добавил PageView к сцене, затем добавил CheckBox. Теперь я не могу нажать CheckBox. Прикосновения переходит к просмотру страницы. Как решить эту проблему?
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);
}
1 ответ
Есть решение!
После комментирования под строкой сработало касание.
// mPageView->setGlobalZOrder(1);