如何使用CADisplayLink替换此NSTimer?

时间:2015-01-03 20:15:28

标签: objective-c nstimer cadisplaylink

我意识到CADisplayLink更适合我当前项目的性质,但是,我无法弄清楚如何实现CADisplayLink并替换我的NSTimer。

下面是我的NSTimer的代码

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

如何创建一个能够更有效地执行相同功能的CADisplayLink?

1 个答案:

答案 0 :(得分:0)

创建东西:

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

开始运行:

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

...只要该运行循环是在主运行循环(与主线程相关联,因此与主队列关联的那个)上,您的显示链接就会发出对BarMoving的调用。在默认模式下。因此,当用户用手指向下滚动滚动视图时,会暂停您的计时器。 NSTimer具有相同的默认行为。