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












Comments