Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用动画更改路径的颜色-iPhone开发人员_Iphone_Objective C_Ios_Ipad - Fatal编程技术网

使用动画更改路径的颜色-iPhone开发人员

使用动画更改路径的颜色-iPhone开发人员,iphone,objective-c,ios,ipad,Iphone,Objective C,Ios,Ipad,我正在开发一个“连接点”应用程序,希望从一个点到另一个点绘制的线能够短暂闪烁,以向用户表明他们已经成功地完成了正确的线。我最初认为最好的方法是在黑色和白色之间交替笔划颜色。我没有动画经验,我读到的关于核心动画类型的所有内容都表明,只有视图的属性可以设置动画。我考虑过创建一个自定义视图,它的长度和线条的长度一样,然后更改背景颜色。然而,考虑到在标准的“连接点”图像中完成一个对象所需的线数,这似乎效率极低 我已经覆盖了touchesBegind/touchesMoved/touchesEnd方法,同

我正在开发一个“连接点”应用程序,希望从一个点到另一个点绘制的线能够短暂闪烁,以向用户表明他们已经成功地完成了正确的线。我最初认为最好的方法是在黑色和白色之间交替笔划颜色。我没有动画经验,我读到的关于核心动画类型的所有内容都表明,只有视图的属性可以设置动画。我考虑过创建一个自定义视图,它的长度和线条的长度一样,然后更改背景颜色。然而,考虑到在标准的“连接点”图像中完成一个对象所需的线数,这似乎效率极低

我已经覆盖了touchesBegind/touchesMoved/touchesEnd方法,同时合并了CGContext方法来创建和绘制屏幕上特定位置的路径


是否有一个主要的概念我错过了,这将允许我动画的路径的颜色?或者,在考虑动画时,我使用UITouch/CGContext的方法是否存在问题?提前感谢您的时间。

如果您使用CALayer的动画功能,可以使用更多的动画选项。然而,这是伴随着复杂性而来的

我不确定你是否需要制作任何动画。动画意味着中间值。您可以简单地延迟0.25秒或其他时间,然后以交替颜色重新绘制路径


如果确实需要动画,请在两个视图中绘制路径,并在0.0和1.0之间来回设置一个视图的alpha的动画。这将为闪光灯提供平滑的淡入淡出效果。如果每次重绘路径的效率不高(但除非重绘1000条路径,否则我认为你将有足够的周期每0.25秒重绘一次路径),你也可以使用该技术在没有动画的情况下进行闪烁。

在绘图和动画方面经验不足,将动画方法视为一种使线条闪烁的方式似乎是合乎逻辑的。以上问题的答案(谢谢晨星)帮助我找到了正确的方向

我创建了两种绘图方法。一个会画一条黑线,另一个会画一条较亮的线。然后我使用performSelector方法,每0.05秒交替调用每个绘图方法,总共1秒。这会快速、反复地将线条重绘为黑色,然后再重新绘制为白色,使其具有我所期望的闪烁效果。由于在这门语言方面的经验有限,发现performSelector方法是非常有价值的,我很可能会在将来大量使用它