cocos2d-x学习之四——如何在cocos2d-x中加入一个UIView

文艺小青年 2013-08-28

在cocos2d-x中加入一个UIView,步骤如下:

1.在CCEGLView.h中添加代码

void addSubView(void* uiView);

 在CCEGLView.mm中实现

void CCEGLView::addSubView(void* uiView)
{
    [[EAGLView sharedEGLView] addSubview:(UIView*)uiView];
}

 2.在需要调用的地方如下调用

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只需要调用

[view removeFromSuperview];
    [view dealloc];

这样添加UIView,有一个问题就是,透过该UIView还可以点击下方cocos2d-x的按钮,设想的一个解决方式是,先添加一层屏蔽点击的CCLayer,然后再添加UIView。但感觉比较笨拙,尚未想出新的解决方案。

完毕,特此备忘。

相关推荐