Ios 核心动画绘图层:由NSTimer驱动的inContext,我做得对吗? 我正在做一个涉及核心动画和AV基础的项目。我想使用核心动画渲染一些效果,然后通过AV基础将其输出到视频文件。我想要实现的动画效果是在iPad上重放最终用户签名

Ios 核心动画绘图层:由NSTimer驱动的inContext,我做得对吗? 我正在做一个涉及核心动画和AV基础的项目。我想使用核心动画渲染一些效果,然后通过AV基础将其输出到视频文件。我想要实现的动画效果是在iPad上重放最终用户签名,ios,core-animation,quartz-graphics,avfoundation,Ios,Core Animation,Quartz Graphics,Avfoundation,我迄今为止所取得的成就: -通过引用苹果的GLPainter示例,我能够记录用户签名的笔划,每个笔划都由许多接触点(CGPoint)组成,这些接触点已记录在我的自定义UIView的touchBegin/touchMoved/touchEnd方法中。 -由可重复的NSTimer驱动,我能够在自定义UIView上重新绘制它。主要是从一个点到下一个点画线的重复过程 我想做什么: 用核心动画技术实现签名重绘,然后用AV基础组合代码嵌入核心动画代码,渲染最终输出。 我现在关心的是什么: 我对核心动画一无

我迄今为止所取得的成就: -通过引用苹果的GLPainter示例,我能够记录用户签名的笔划,每个笔划都由许多接触点(CGPoint)组成,这些接触点已记录在我的自定义UIView的touchBegin/touchMoved/touchEnd方法中。 -由可重复的NSTimer驱动,我能够在自定义UIView上重新绘制它。主要是从一个点到下一个点画线的重复过程

我想做什么: 用核心动画技术实现签名重绘,然后用AV基础组合代码嵌入核心动画代码,渲染最终输出。 我现在关心的是什么:

  • 我对核心动画一无所知,这几天我一直在学习。然而,我只读过的教程/书籍告诉我如何通过改变CALayer的属性来制作隐式动画,或者制作CAKeyframeAnimation。但是我的动画是在层的画布上逐渐地绘制一些东西,而不是移动一些东西。那么,如何在核心动画中做到这一点呢
我现在所做的:与我对Quartz2D所做的非常相似,我使用一个NSTimer来重复设置CALayer对象needsDisplay,这反过来调用其委托的drawLayer:inContext方法的实现,在该方法中,我编写的代码与我在UIView的drawRect中编写的代码完全相同

嗯,我做了一些动画,没有涉及任何动画。我只是觉得奇怪,觉得我做错了。我还没有进入AV基础部分的组合核心动画,但我怀疑我的Heck不会通过。


我做了诚实的搜索,所以我发誓,但没有发现任何相关的。我在Quartz2D和Core动画方面的经验非常有限,所以,如果有人能给我一些提示,我真的很感激,谢谢

您要做的是将图形与屏幕的刷新率同步。
NSTimer
在这方面不是特别擅长。您要查找的类是
CADisplayLink
。按如下方式访问它:

link = [[UIScreen mainScreen] 
             displayLinkWithTarget:self
                          selector:@selector(shouldUpdateDisplayLink:)];

集合需要显示在
shouldUpdateDisplayLink:
回调中。保留显示链接以确保其保持不变,并可选择设置较低的刷新率,可能是为了与媒体播放相匹配。

您要做的是将图形与屏幕的刷新率同步。
NSTimer
在这方面不是特别擅长。您要查找的类是
CADisplayLink
。按如下方式访问它:

link = [[UIScreen mainScreen] 
             displayLinkWithTarget:self
                          selector:@selector(shouldUpdateDisplayLink:)];

集合需要显示在
shouldUpdateDisplayLink:
回调中。保留显示链接以确保其保持不变,并可选择设置较低的刷新率,可能是为了与媒体播放相匹配。

谢谢,PeyloW。我最终通过这种方法实现了我的目标,谢谢你,佩洛。我最终通过这种方法实现了我的目标