0

按照关于的示例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
4

1 回答 1

1

GLKViewController管理一个动画计时器,告诉您的应用程序何时绘制(相关地,告诉您何时绘制即将发生,以便您可以为模拟或游戏玩法等实现每帧逻辑)。GLKView管理如何绘制——你将它子类化或使用它的委托来提供渲染代码。

如果您进行子类GLKViewController化,则可以将每帧逻辑放入签名为-(void)update. 这个方法没有在GLKViewController类定义中列出,因为它不是类声明或实现的方法——它只适用于子类。(这在 中有所描述class overview documentation。)

或者,如果您使用 stock GLKViewController,您可以使用自己的自定义类作为其委托,并将每帧逻辑放入glkViewControllerUpdate:.

于 2014-03-04T00:19:30.963 回答