很多时候我用UI编辑器做出来的是一个框架一样的东西,然后由程序再动态的往上面添加其他元素,
比如UI编辑器做了个Panel,然后程序添加一个Sprite
这该如何实现?
因为Panel是Layout,是Widget的子类,而Sprite没有继承Widget
于是UILayout.cpp里面
void Layout::addChild(Node child, int zOrder, int tag)
{
supplyTheLayoutParameterLackToChild(static_cast<Widget>(child));
Widget::addChild(child, zOrder, tag);
_doLayoutDirty = true;
}
这个static_cast说明了,layout上只能添加Widget的子类。。。
我该怎么办?
当然绕弯子的方法也是有的,
我在Layout上放个ImageView,这个ImageView的getVirtualRenderer() 是个Sprite,
这样我可以把非Widget的Node添加到这个Sprite上。。。。