我正在使用Cocos2d制作iOS游戏,并且需要自定义UITableView的外观。看起来this post提供了一个很好的框架,并且我自己测试时,示例代码运行良好。问题是我无法在我的cocos2d应用程序中运行它。Cocos2d中的自定义UIView-iphone
示例使用此代码来创建自定义的UIViewController:(窗口是一个UIWindow和ViewController是EasyCustomTableController)
[window addSubview:viewController.view];
[window makeKeyAndVisible];
但是当我使用的代码,该EasyCustomTableController的viewDidLoad函数从不运行,并没有任何反应在我的游戏中。我能得到的viewDidLoad功能通过使用此代码运行:
levelMenu = [[EasyCustomTableController alloc] init];
[[[CCDirector sharedDirector] openGLView] addSubview:levelMenu.view];
但同样的,什么也没有发生在我的游戏和观点从未出现。
如何获得自定义UIViewController在我的cocos2d应用程序中工作?
编辑:
我可以得到一个UIView以白色背景来显示,所以必须与levelMenu.view一个问题:
UIApplication* clientApp = [UIApplication sharedApplication];
UIWindow* topWindow = [clientApp keyWindow];
if (!topWindow) {
topWindow = [[clientApp windows] objectAtIndex:0];
}
//Works
UIView *white = [[UIView alloc] initWithFrame:CGRectMake(0, 0, size.width, size.height)];
white.backgroundColor = [UIColor colorWithRed:255 green:255 blue:255 alpha:255];
[topWindow addSubview:white];
//Doesn't work
levelMenu = [[EasyCustomTableController alloc] init];
[topWindow addSubview:levelMenu.view];
我没有从改变levelMenu的类代码样本 - 你可以看到viewDidLoad中的第一个代码框中here
viewDidLoad运行,我的游戏停止处理输入,但表视图仍然没有出现。 – Cbas
在'viewDidLoad'中尝试'bringSubviewToFront:'。还要确保'view.frame'是正确的 –
我的编辑中的新代码应该将视图置于前面。我尝试设置levelMenu.tableView.frame来适应屏幕,但这并没有改变什么 – Cbas