0

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

下面是我的 NSTimer 的代码

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

如何创建一个执行相同功能但更高效的 CADisplayLink?

4

1 回答 1

0

创建事物:

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

开始运行:

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

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

于 2015-01-03T20:23:32.547 回答