【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;
}
}