为什么GLKViewControllerDelegate中没有更新?

时间:2014-03-01 13:25:59

标签: ios opengl-es opengl-es-2.0 glkit glkview

关于GLKViewController的示例,我实现了更新回调,如下所示

- (void)update 
{

}

但我检查了源代码,看起来没有定义更新消息,为什么我可以使用更新?

@protocol GLKViewDelegate <NSObject>

@required
/*
 Required method for implementing GLKViewDelegate. This draw method variant should be used when not subclassing GLKView.
 This method will not be called if the GLKView object has been subclassed and implements -(void)drawRect:(CGRect)rect.
 */
- (void)glkView:(GLKView *)view drawInRect:(CGRect)rect;

@end

1 个答案:

答案 0 :(得分:1)

GLKViewController管理一个动画计时器,告诉您的应用何时绘制(相关地,告诉您绘图何时发生,以便您可以实现模拟或游戏的每帧逻辑管他呢)。 GLKView管理如何绘制您的子类或使用其委托提供呈现代码。

如果您继承GLKViewController,则可以将每帧逻辑放在签名为-(void)update的方法中。此方法未在GLKViewController类定义中列出,因为它不是由类声明或实现的方法 - 它仅用于子类。 (这在class overview documentation中有描述。)

或者,如果您使用股票GLKViewController,则可以使用自己的自定义类作为其委托,并将每个框架的逻辑放在glkViewControllerUpdate:中。