2015-01-03 62 views
0

我意識到CADisplayLink會更適合我當前項目的性質,但是,我不能完全弄清楚如何實現CADisplayLink並替換我的NSTimer。如何用CADisplayLink替換此NSTimer?

下面

是我如何可以創建將執行相同的功能,但更有效的一個CADisplayLink我的NSTimer

Movement = [NSTimer scheduledTimerWithTimeInterval:0.002 target:self selector:@selector(BarMoving)  userInfo:nil repeats:YES]; 

的代碼?

回答

0

創建件事:

_displayLink = [CADisplayLink displayLinkWithTarget:self 
        selector:@selector(BarMoving)]; 

啓動它運行:

[_displayLink addToRunLoop:[NSRunLoop mainRunLoop] 
    forMode:NSDefaultRunLoopMode]; 

...這會導致你的顯示器鏈接發出呼籲BarMoving在主運行循環(這是一個與主線程相關聯,因此也是主隊列),只要該運行循環處於默認模式。因此,當用戶將手指向下滾動滾動視圖時,會暫停計時器。 NSTimer具有相同的默認行爲。