2011-09-26 2 views
2

동일한 viewController에서 NSTimer (반복) 및 UITableView를 구현했습니다.UIScrollView 블록이 루프를 실행합니까?

어떻게 든 tableView를 스크롤하면 실행 루프가 NSTimer를 시작하는 것처럼 보입니다. UITextView도 UIScrollView의 하위 클래스이기 때문에 마찬가지입니다.

여기에 무슨 일이 일어나고 있는지 알 수 있습니까?

답변

9

타이머가 실행을 멈추게하는 이유는 스크롤하는 동안 실행 루프가 UITrackingRunLoopMode으로 전환되고 기본적으로 타이머가 해당 모드에 추가되지 않기 때문입니다. 타이머를 시작할 때 수동으로 설정할 수 있습니다.

NSTimer *timer = [NSTimer timerWithTimeInterval:1.0 target:self selector:@selector(timerFired:) userInfo:nil repeats:YES]; 
NSRunLoop *runloop = [NSRunLoop currentRunLoop]; 
[runloop addTimer:timer forMode:NSRunLoopCommonModes]; 
[runloop addTimer:timer forMode:UITrackingRunLoopMode];