2014-03-01 134 views
0

以下有關GLKViewController一個例子,我實現了類似下面的爲什麼GLKViewControllerDelegate沒有更新?

- (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

GLKViewController管理動畫定時器,它告訴你的應用程序繪製(和與此相關的,告訴你繪圖時將要發生,所以你可以實現每幀的邏輯仿真或遊戲或其他)。 GLKView管理如何來繪製你的子類或使用它的委託來提供渲染代碼。

如果您的子類爲GLKViewController,則可以將每幀邏輯置於其簽名爲-(void)update的方法中。此類方法未在GLKViewController類定義中列出,因爲它不是由類聲明或實現的方法 - 它僅適用於子類。 (這在class overview documentation中有描述。)

或者,如果您使用庫存GLKViewController,則可以使用自己的自定義類作爲其委託並將每幀邏輯放入glkViewControllerUpdate:

相關問題