如何在cocos2d-x中加入一个uiview
1个回答
推荐于2016-01-02 · 知道合伙人数码行家
huanglenzhi
知道合伙人数码行家
向TA提问 私信TA
知道合伙人数码行家
采纳数:117538
获赞数:517199
长期从事计算机组装,维护,网络组建及管理。对计算机硬件、操作系统安装、典型网络设备具有详细认知。
向TA提问 私信TA
关注
展开全部
在cocos2d-x中加入一个UIView,步骤如下:
1.在CCEGLView.h中添加代码
Cpp代码
void addSubView(void* uiView);
在CCEGLView.mm中实现
Cpp代码
void CCEGLView::addSubView(void* uiView)
{
[[EAGLView sharedEGLView] addSubview:(UIView*)uiView];
}
2.在需要调用的地方如下调用
Cpp代码
float screenWidth = CCDirector::sharedDirector()->getWinSize().width;
float screenHeight = CCDirector::sharedDirector()->getWinSize().height;
CGRect frame;
frame.origin.x = 0;
frame.origin.y = 0;
frame.size.width = screenWidth;
frame.size.height = screenHeight;
UIView *view = [[UIView alloc] initWithFrame:frame];
[view setUserInteractionEnabled:NO];
CCDirector::sharedDirector()->getOpenGLView()->addSubView(view);
[MBProgressHUD showHUDAddedTo:view animated:YES];//MBProgressHUD为开源的等待提示框
3.移除UIView只需要调用
Cpp代码
[view removeFromSuperview];
[view dealloc];
这样添加UIView,有一个问题就是,透过该UIView还可以点击下方cocos2d-x的按钮
1.在CCEGLView.h中添加代码
Cpp代码
void addSubView(void* uiView);
在CCEGLView.mm中实现
Cpp代码
void CCEGLView::addSubView(void* uiView)
{
[[EAGLView sharedEGLView] addSubview:(UIView*)uiView];
}
2.在需要调用的地方如下调用
Cpp代码
float screenWidth = CCDirector::sharedDirector()->getWinSize().width;
float screenHeight = CCDirector::sharedDirector()->getWinSize().height;
CGRect frame;
frame.origin.x = 0;
frame.origin.y = 0;
frame.size.width = screenWidth;
frame.size.height = screenHeight;
UIView *view = [[UIView alloc] initWithFrame:frame];
[view setUserInteractionEnabled:NO];
CCDirector::sharedDirector()->getOpenGLView()->addSubView(view);
[MBProgressHUD showHUDAddedTo:view animated:YES];//MBProgressHUD为开源的等待提示框
3.移除UIView只需要调用
Cpp代码
[view removeFromSuperview];
[view dealloc];
这样添加UIView,有一个问题就是,透过该UIView还可以点击下方cocos2d-x的按钮
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询