我有一个显示分数和名称的 UITableView。我也有在屏幕上移动的动画对象..但是它们在 tableview 下并且无论有什么 z-index 值都不可见..我怎样才能让动画对象在我的 UITableView 之上?谢谢..
问问题
254 次
2 回答
1
在继续之前(samfisher 的解决方案可以将所有 UIKit 放在 cocos2d 视图下)请记住这一点:
在 cocos2d 中有一个 UIKit 视图在技术上是不可能的,因为 cocos2d 会同时在 UIKit 视图的前面和后面绘制节点。
换句话说:一个 UIKit 视图可以完全在所有 cocos2d 节点之前,也可以完全在所有 cocos2d 节点之后。
原因是 cocos2d 是从 UIKit 的角度来看的。
于 2013-02-22T12:36:13.337 回答
0
您必须将 UITableView 添加为 CCDirector 的 openGLView 的子视图。
所有带有对象的 COCOS2D 动画都在 openGLView 上进行,这显然低于 TableView,因此 z 索引在这种情况下不起作用。
您所要做的就是将 UITableView 直接插入 UIWindow 并将其移动到 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
}
于 2013-02-22T07:22:17.370 回答