我用的3.2
extension::ScrollView 直接添加Button或Layout为子节点,会被他们吞掉触摸事件。
如果setGlobalZOrder(1);触摸事件倒是没吞掉,但是又失去了剪裁效果。
大家有没有什么好的解决方案呢?
我用的3.2
extension::ScrollView 直接添加Button或Layout为子节点,会被他们吞掉触摸事件。
如果setGlobalZOrder(1);触摸事件倒是没吞掉,但是又失去了剪裁效果。
大家有没有什么好的解决方案呢?
你代码扔上来看下,为什么我记得我之前用都没这情况= =!
Layout * selectGame_Scroll = dynamic_cast<Layout*>(Helper::seekWidgetByName(_lobbyPanel,“selectGame_Scroll”));
Layout * game_dagun = dynamic_cast<Layout*>(Helper::seekWidgetByName(selectGame_Scroll,“game_dagun”));//这是一个Layout,里面有一个Button
Layout * game_none = dynamic_cast<Layout*>(Helper::seekWidgetByName(selectGame_Scroll,“game_none”));//这是一个Layout,里面有一个Button
game_dagun->removeFromParent();game_dagun->retain();
game_none->removeFromParent();game_none->retain();
myScrollView * m_selectGameScroll = myScrollView::create(Size(670,380),GAME_DEVIDE_LENGTH,nullptr);
selectGame_Scroll->addChild(m_selectGameScroll);
selectGame_Scroll->setGlobalZOrder(2);
selectGame_Scroll->setClippingEnabled(true);
m_selectGameScroll->setDelegate(this);
m_selectGameScroll->setGlobalZOrder(1);
m_selectGameScroll->setBounceable(true);
m_selectGameScroll->setDirection(extension::ScrollView::Direction::HORIZONTAL);
m_selectGameScroll->addChild(game_dagun);game_dagun->release();
m_selectGameScroll->addChild(game_none);game_none->release();
版主大人,我是这样做的,仍然没有剪裁效果
myScrollView里面就多了一个滑动完自动校准的功能,应该跟这个无关,可以排除。
能发个可运行的Demo来吗?或者你自己参考TestCpp里面UIScrollViewTest.cpp
不是ui::ScrollView。是extension::Scroll了View
好吧= =!
没注意到…
能提供个重现Demo吗?
没事,多谢版主的热心,我已经解决了
能问下是什么问题吗?
因为Button等控件是ScrollView的子节点,所以先响应触摸,而所有Widget都是向下屏蔽触摸的,所以导致点击在Widget上时ScrollView是不能响应滑动的。于是我重新封装了一个ScrollView,重写setTouchEnabble方法,添加触摸监听时指定优先级为-1,然后就达到要求了