2012-06-02 4 views
2

NSTimer가 잠시 멈추고 있으면 UIGesture 액션 수행 후 다시 시작됩니다.UIGesture 액션 수행시 NSTimer가 잠시 멈춤 중

매 0.5 초마다 NSTimer를 반복적으로 실행해야하는 iOS 애플리케이션을 개발 중이며 타이머를 기반으로 노래 진행률 막대를 이동합니다. 또한 동일한 뷰를 유지 한 일부 이미지를 터치 할 때 터치 이벤트를 처리합니다. 사용자가 이미지를 터치하면 진행 표시 줄을 이동하는 타이머가 잠시 멈추고 다시 계속 표시됩니다.

동일한보기에서 동시에 타이머 및 터치 이벤트를 처리 할 수 ​​없다는 문제가 있습니까? 타이머

myTimer = [NSTimer scheduledTimerWithTimeInterval:timeinterval target:self selector:@selector(updatplayer:) userInfo:nil repeats:YES]; 
    [[NSRunLoop mainRunLoop] addTimer:myTimer forMode:NSRunLoopCommonModes]; 

답변

1

에 대한

내 코드는이 NSTimer와 일반적인 문제입니다. 일을 개선하기 위해 루프 모드를 실행하는 동안 더 좋은 해결책은 GCD 타이머로 전환하는 것입니다. 예를 들어 RNTimer을 참조하십시오. 자세한 내용은 dispatch_source_create의 문서를 참조하십시오.

+0

NSTimer로 처리 할 수 ​​없습니까? – naga

+0

GST는 루프를 작성하지 않고 훨씬 쉽게 처리 할 수 ​​있기 때문에 일반적으로 NSTimer의 실행 루프 모드와 싸울 가치가 있습니다. 하지만 코드에서 자신을 두 번 예약하면 문제가 발생할 수 있습니다. addTimer를 직접 호출하려면 "예정된"변형을 사용하지 마십시오. 그것은 두 번 예정입니다. –

관련 문제