objective-c - Cocos2d-iphone 中的自定义 UIView

标签 objective-c ios uitableview cocos2d-iphone

我正在使用 Cocos2d 制作 iOS 游戏,需要自定义 UITableView 的外观。看来this post提供了一个很好的入门框架,并且当我单独测试它时,示例代码运行良好。问题是我无法让它在我的 cocos2d 应用程序中工作。

示例使用此代码创建自定义 UIViewController:(窗口是 UIWindow,viewController 是 EasyCustomTableController)

[window addSubview:viewController.view];
[window makeKeyAndVisible];

但是当我使用该代码时,EasyCustomTableController 的 viewDidLoad 函数永远不会运行,并且我的游戏中没有任何反应。我可以使用以下代码运行 viewDidLoad 函数:

levelMenu = [[EasyCustomTableController alloc] init];
[[[CCDirector sharedDirector] openGLView] addSubview:levelMenu.view];

但同样,我的游戏中没有任何反应, 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

最佳答案

试试这个

UIApplication* clientApp = [UIApplication sharedApplication];   
UIWindow* topWindow = [clientApp keyWindow];
if (!topWindow) {
    topWindow = [[clientApp windows] objectAtIndex:0];
}
[topWindow addSubview:levelMenu.view];

如果您没有看到任何内容,则 levelMenu.view 可能有问题。尝试使用带有白色背景的简单基本 UIView 来测试这一点。

关于objective-c - Cocos2d-iphone 中的自定义 UIView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12185712/

相关文章:

ios - 当我们收到推送通知时如何打开或关闭?

ios - 如何以编程方式更改 iOS 中超链接的默认颜色?

ios - 如何使用核心数据 Integer 64 属性?

iphone - 返回自动释放对象的类方法

ios - 自定义单元格中的委托(delegate)

iphone - 在哪里可以找到 UITableViewCell 图标的模板?

ios - 如何在 Xcode 中的表格 View 底部添加搜索栏?

iphone - UITabBarController 到 UIViewController 与内部 UITableView

ios - 扩展 CLPlacemark 导致 EXC BAD ACCESS

ios - 如何让plist中的特定项目显示在tableView中