0

我正在向 UIViewController 中的 UIView 添加 GLKView。最终我会将代码拆分为使用 UIViewController 和 GLKViewController,但现在我的手被束缚了,需要使用 UIViewController。

我的问题是,当我通过情节提要将 GLKView 添加到 UIVIew 时,一切正常。当我尝试以编程方式添加 GLKView 时,它似乎并没有完全正确地初始化。它显示为灰色。

除了使用 IBOutlet 之外,我的实现的唯一区别是我调用了下面代码块中的第一行和最后一行。

glview = [[GLKView alloc] init]; // Non storyboard
[glview setContext:context];
[glview setDelegate:self];
[glview setUserInteractionEnabled:YES];
[self.view addSubview:glview]; // Non storyboard

初始化后,我设置了一个 AVCapture 会话。我在控制器 viewWillAppear 函数中在我的 GLKView 上设置了框架。您是否看到我的 GLKView 未正确初始化的任何原因?

4

1 回答 1

0

该应用程序正在管理绘图例程,因此我需要在以编程方式创建的 GLKView 上禁用“enableSetNeedsDisplay”。以下代码解决了我的问题。注意倒数第二行。

glview = [[GLKView alloc] init];
[glview setContext:context];
[glview setDelegate:self];
[glview setUserInteractionEnabled:YES];
[glview setEnableSetNeedsDisplay:NO]; // HERE IS THE FIX
[self.view addSubview:glview];
于 2014-01-31T21:58:01.343 回答