Hi All,
请教下各位ScrollView的问题。
我在UI编辑器做了个ScrollView,名叫sv,sv里面有个子控件a,然后我在CCLayer的
init和onEnter里面都试过添加以下代码:
sv->jumpToBottom(); //在onEnter里面可以生效
sv->jumpToPercentVertical(0.5f); //不生效
sv->scrollToBottom(0.1f, false); //生效!!
sv->scrollToPercentVertical(0.1f, 2.0f, false); //不生效
a->setPosition(ccp(320, 600)); //不生效
然后我试了加了个按钮,捕抓按钮事件,按下按钮后,再做以上几步,就都可以生效了。
所以现在很困惑,我想初始化场景的时候就把ScrollView设置好位置,还有里面子控件的位置,应该怎么做?试了很久都没有结果。
我的版本是cocostudio 1.4.01,cocos2dx2.2.3
非常感谢!
最新进展:
我发现初始化调整scrollview,需要在onEnter里面做,init里面不会生效
然后ScrollView里面的子控件无法在初始化的时候设置位移不生效,我发现是因为ScrollView是相对布局造成的,如果换成绝对布局就正常了。这是不是个bug呢?
我现在的做法是:
void Helloworld::onEnter()
{
CCLayer::onEnter();
scheduleOnce(schedule_selector(Helloworld::onUpdateInit), 0.01f);
}
//然后onUpdateInit里面再去设置scrollview中子空间的位置,这种方法非常非常的土鳖啊~~~~
void Helloworld::onUpdateInit( float dt )
{
UIImageView *imageView = (UIImageView *) m_uiLayer->getWidgetByName(“Image_a”);
imageView-setPosition(ccp(300, 300));
}
所以现在的问题是,ScrollView如果是相对布局,里面子控件的位置如何在初始化的时候设置呢?