【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