通过故事板添加GLKView并以编程方式添加

时间:2014-01-30 23:47:23

标签: uiview storyboard glkview

我正在向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没有正确初始化的原因吗?

1 个答案:

答案 0 :(得分: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];