0

いくつかのグラフィックスを含むいくつかのアニメーションに OpenGLES を使用しているため、GLKView があります。viewWillAppear メソッドを実装するまで、これらのアニメーションはすべて非常にうまく機能しています。

viewDidLoad で初期化された 2 つのタイマーがあります。

updateTimer = [NSTimer scheduledTimerWithTimeInterval:0.01 target:self selector:@selector(updateScene) userInfo:nil repeats:YES];
paintTimer = [NSTimer scheduledTimerWithTimeInterval:0.02 target:self selector:@selector(paintScene) userInfo:nil repeats:YES];

NSLog は、2 つのメソッド (updateScene と paintScene) が正しく呼び出され、グラフィックが正しく変更されたことを示しています。

viewWillAppear メソッドがない限り、すべてが正常にアニメーション化されます。viewWillAppear メソッドを実装すると、updateScene と paintScene は引き続き呼び出されますが、何も変わりません。アニメーションなし。viewWillAppear は空です。中にコードはありません。

すべてのアニメーションがブロックされるのはなぜですか?

4

1 に答える 1

0

viewWillAppear が [super viewWillAppear:animated]; を呼び出していることを確認してください。
これで問題が解決する場合があります。Appleのドキュメントによると:

このメソッドをオーバーライドする場合は、実装のある時点で super を呼び出す必要があります。

于 2013-06-28T13:38:18.367 に答える