スコアと名前を表示する UITableView があります。画面上を移動するアニメーション オブジェクトもあります。ただし、テーブルビューの下に移動し、z-index 値に関係なく表示されません。アニメーション オブジェクトを UITableView の上に移動するにはどうすればよいですか? ありがとう..
2 に答える
続行する前に (samfisher のソリューションはすべての UIKit を cocos2d ビューの下に配置するように機能します)、次の点に注意してください。
cocos2d が UIKit ビューの前後に同時にノードを描画する場合、cocos2d で UIKit ビューを持つことは技術的に不可能です。
つまり、UIKit ビューは、すべての cocos2d ノードの前に完全に配置することも、すべての cocos2d ノードの完全に後ろに配置することもできます。
その理由は、cocos2d が UIKit の観点からのビューだからです。
CCDirector の openGLView のサブビューとして UITableView を追加しておく必要があります。
オブジェクトを含むすべての COCOS2D アニメーションは、明らかに TableView の下にある openGLView で行われるため、この場合 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
}