如何在cocos2d-iphone中的CCLayer或CCScene中添加UITextView

时间:2011-12-12 12:16:02

标签: iphone ios cocos2d-iphone

我想添加一个指令页面,其中的指令用UITextView编写。如何在Cocos2d中完成。因为这是一个游戏页面,我想采取cocos2d的菜单交易效果,如CCTransitionRadialCCW。

我写了这段代码

UITextView *textView = [[UITextView alloc] initWithFrame:CGRectMake(10,60, 300,360)];
textView.backgroundColor = [UIColor clearColor];
textView.text = @"I am First enemy";
[textView setEditable:NO]; 
[[[CCDirector sharedDirector]openGLView]addSubview:textView];

但是有问题是它被添加到主CCDirector页面,而我正在编写这段代码

 // [[[CCDirector sharedDirector]openGLView]addSubview:textView];
 //  replaced by :-
[self addChild:textView]; 

它给了我错误。请告诉我如何在CCScene或CCLayer中添加UITextView。

我知道[self addChild:(CCNode *)node];

addChild:方法需要CCNode所以请告诉我如何将UITextView对象强制转换或转换为CCNode。

如果有一些替代选项,请告诉我。喜欢CCLabelTTF替代UILabel,Cocos2d-iphone中的UITableView是否有替代。

提前致谢

2 个答案:

答案 0 :(得分:1)

查看CCTableView:http://www.cocos2d-iphone.org/archives/943

以你提到的交错方式组合UIKit和Cocos2D可能非常困难,因为在Cocos2D中完成的所有内容都是在一个OpenGL视图中绘制的。添加UIView时,只能在Cocos2D视图的前面或后面添加它。

答案 1 :(得分:0)

无论你将哪个UIView添加到cocos2d,它都不会被cocos2d转换效果动画化,因为简单地说UIView对象存在于cocos2d使用的OpenGL视图之外(并且在转换的情况下为动画)。

在第一个示例代码中添加UIViews到cocos2d视图是正确的。但是为了将视图定位为节点,您应该考虑使用CCUIViewWrapper