【iOS】ビューを操作するとモーションが止まる件について

Q. iOS版で、ビューを操作した際に、モデルのモーションが止まってしまう。

A. これは、別のViewのスクロール中はタイマーの更新が止まってしまうことが原因です。

OpenGLの描画対象であるViewの前景に テーブルなどがある場合、

そのスクロール中はOpenGL画面の 更新が止まってしまいます。

その場合、CADisplayLinkではなくNSTimerを使います。

- (void)startAnimation

{

if (!animating)

{

animationTimer = [NSTimer scheduledTimerWithTimeInterval:animationFrameInterval

target:self

selector:@selector(drawView:)

userInfo:nil repeats:TRUE];

// 以下の行をいれると、他のViewをスクロール中でもアニメーションが止まりません

[[NSRunLoop currentRunLoop] addTimer:animationTimer forMode:NSRunLoopCommonModes];

animating = TRUE;

}

}