如何用 CADisplayLink 替换此 NSTimer?
How do I replace this NSTimer with a CADisplayLink?
我意识到 CADisplayLink 更适合我当前项目的性质,但是,我不太清楚如何实现 CADisplayLink 并替换我的 NSTimer。
下面是我的 NSTimer
的代码
Movement = [NSTimer scheduledTimerWithTimeInterval:0.002 target:self selector:@selector(BarMoving) userInfo:nil repeats:YES];
如何创建执行相同功能但更高效的 CADisplayLink?
创建事物:
_displayLink = [CADisplayLink displayLinkWithTarget:self
selector:@selector(BarMoving)];
开始吧运行宁:
[_displayLink addToRunLoop:[NSRunLoop mainRunLoop]
forMode:NSDefaultRunLoopMode];
... 这将导致您的显示 link 在主 运行 循环(这是与主线程相关联的循环,因此与主队列)只要 运行 循环处于默认模式。因此,当用户用手指向下滚动滚动视图时,会暂停您的计时器。 NSTimer
具有相同的默认行为。
我意识到 CADisplayLink 更适合我当前项目的性质,但是,我不太清楚如何实现 CADisplayLink 并替换我的 NSTimer。
下面是我的 NSTimer
的代码Movement = [NSTimer scheduledTimerWithTimeInterval:0.002 target:self selector:@selector(BarMoving) userInfo:nil repeats:YES];
如何创建执行相同功能但更高效的 CADisplayLink?
创建事物:
_displayLink = [CADisplayLink displayLinkWithTarget:self
selector:@selector(BarMoving)];
开始吧运行宁:
[_displayLink addToRunLoop:[NSRunLoop mainRunLoop]
forMode:NSDefaultRunLoopMode];
... 这将导致您的显示 link 在主 运行 循环(这是与主线程相关联的循环,因此与主队列)只要 运行 循环处于默认模式。因此,当用户用手指向下滚动滚动视图时,会暂停您的计时器。 NSTimer
具有相同的默认行为。