2011-09-26 62 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];