我有一个显示分数和名字的UITableView。我还有在屏幕上移动的动画对象。但是它们在tableview下面并且不管是什么z-index值都不可见..如何让动画对象在我的UITableView上面? 感谢..
答案 0 :(得分:1)
在你继续之前(samfisher的解决方案可以将所有UIKit放在cocos2d视图下面)记住这一点:
在cocos2d中使用UIKit视图在技术上是不可能的,其中cocos2d同时在UIKit视图的前面和后面绘制节点。
换句话说: UIKit视图可以完全位于所有cocos2d节点之前,也可以完全位于所有cocos2d节点之后。
原因是cocos2d是UIKit的观点。
答案 1 :(得分:0)
你必须添加UITableView作为CCDirector的openGLView的子视图。
所有带有对象的COCOS2D动画都在openGLView上进行,这显然低于TableView,所以z索引在这种情况下不会起作用。
您所要做的就是直接在UIWindow上插入UITableView并将其移动到openGLView下面。您也可以使用:
[<UIWindow> insertSubview:<TableView> belowSubview:<openGLView>];
您需要做的就是让您的openGLView透明,并确保您没有在CCLayer上添加背景图像(否则它将覆盖)
所以问题是如何使你的openGLView - 透明
-(void) initGLDefaultValues
{
// This method SHOULD be called only after openGLView_ was initialized
NSAssert( openGLView_, @"openGLView_ must be initialized");
[self setAlphaBlending: YES];
[self setDepthTest: YES];
[self setProjection: CCDirectorProjectionDefault];
// ***** NEW CODE: make open gl view transparent
openGLView_.opaque = NO;
glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
// disable regular, opaque clear color
//glClearColor(0.0f, 0.0f, 0.0f, 1.0f);
// ***** NEW CODE end
}