iphone - 在 OpenGL ES View 和 UIKit View Controller 之间切换

标签 iphone uikit opengl-es multiple-views

这是我的问题。

我正在使用 OpenGL ES 在 iPhone 上开发一款游戏。我开始使用 Xcode 模板 OpenGL ES 应用程序以及一个 EAGLView 等进行开发。

我的菜单 View 和游戏 View 使用相同的 OGL View ,但现在我想添加分数排名,因此我需要一个键盘和一个文本字段来写入名称,以及一些标签或表格 View 来显示排名。

更新:嗯,我认为最好的解决方案是将我当前的 glView 与另一个 UIKit View 结合起来,我将在其中放置分数排名并进行切换。

我有 Apress 的书开始 iPhone 开发,并且我遵循有关多个 View 的章节。我想在两个 UIViewController 之间切换,但是当我要在游戏中进行更改时... glView 不是 UIViewController,它是 UIView,所以我迷路了。

有人可以帮我解决这个问题吗? :-(

非常感谢。

最佳答案

嗯,我想我解决了这个问题,所以我与你分享解决方案。

我从书中的多个 View 示例开始:三个 xib(主窗口和我们切换的两个 View )、应用程序。 delegate,每个 View 有两个 View Controller 和一个在 View 之间切换的 Root View Controller 。

我将 EAGLView 类和渲染器添加到该项目中,并将 EAGLView 上的 initWithCoder 方法更改为 initWithFrame:

//- (id) initWithCoder:(NSCoder*)coder
- (id)initWithFrame:(CGRect)frame
{    
    if ((self = [super initWithFrame:frame])) {
    // The same we had.

然后,在我的 Root View Controller 中,当我点击按钮时,我添加了一个 IBAction:

- (IBAction)drawEAGLView:(id)sender {
    CGRect rect = [[UIScreen mainScreen] applicationFrame];
    glView = [[EAGLView alloc] initWithFrame:CGRectMake(rect.origin.x, rect.origin.y, rect.size.width, rect.size.height)];
    self.view = glView;
    [glView startAnimation];
}

仅此而已。非常简单而且效果很好。也许它需要一些优化,但这是一个很好的起点。

所以,我现在可以做我的分数排名了:D

关于iphone - 在 OpenGL ES View 和 UIKit View Controller 之间切换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2257837/

相关文章:

java - Android OpenGL ES 以纵横比全屏显示图像

iphone - UINavigationController:在一个 View 上隐藏后退按钮会在所有 View 中隐藏它

iphone - 将我的应用程序与 iPhone 4G 的 Nike+ 功能集成的最佳选择

ios - 如何更新嵌入到 UIKit 中的 SwiftUI View ?

ios - 当搜索栏具有焦点时,UISearchController 不会尊重隐藏的状态栏

ios - UIDatePicker 显示 12 小时时间而不是 24 小时时间

iphone - UIAlertView - 显示导致内存泄漏

iphone - iOS OpenGL ES 2.0 四元数旋转休眠到 XYZ 位置

c++ - 与 OpenGL ES 共享 egl 上下文

android - Opengl-使用着色器,有必要吗?