我想在我的视图中显示动画。所以我使用CADisplaylink
作为计时器,以便在一秒钟内(60FPS)调用更新方法 60次。
但是当同一超级视图重新加载的tableview时,CADisplaylink
仅调用40-50次秒(40-50FPS)。
self.displayLink = [CADisplayLink displayLinkWithTarget:self selector:@selector(update)];
self.displayLink.paused = YES;
[self.displayLink addToRunLoop:[NSRunLoop currentRunLoop] forMode:NSRunLoopCommonModes];
我该如何解决?
答案 0 :(得分:0)
从CADisplayLink类引用:
目标可以读取显示链接的时间戳属性以进行检索 显示上一帧的时间。例如,一个 显示电影的应用程序可能会使用时间戳来计算 接下来将显示哪个视频帧。执行的应用程序 它自己的动画可能会使用时间戳来确定位置和方式 显示的对象出现在即将出现的帧中。持续时间属性 提供帧之间的时间量。您可以在中使用此值 你的应用程序来计算显示器的帧速率, 显示下一帧的大致时间,并进行调整 绘制行为,以便及时准备下一帧 显示。
意味着帧率由系统决定,你应该将动画作为基础。无法设置帧速率,而是由多种因素组合决定(例如,处理器密集型活动活动的程度,UI的图形密集程度等)。