Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/94.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
Ios 尝试使用Swift设置圆形成的动画_Ios_Swift_Animation - Fatal编程技术网

Ios 尝试使用Swift设置圆形成的动画

Ios 尝试使用Swift设置圆形成的动画,ios,swift,animation,Ios,Swift,Animation,我对swift动画不熟悉,需要一些帮助来理解这一点 假设我有下面的代码,它根据提供的输入创建一个圆 func drawCircle(percentage:CGFloat){ //Some circle drawing code and the circle is drawn using the percentage % provided. } 我用 drawCircle(0.5) 我去拿这个。 我使用 drawCircle(0.75) 我去拿这个。 因此,根据通过的百分比,我创建

我对swift动画不熟悉,需要一些帮助来理解这一点

假设我有下面的代码,它根据提供的输入创建一个圆

    func drawCircle(percentage:CGFloat){
//Some circle drawing code and the circle is drawn using the percentage % provided.

}
我用

drawCircle(0.5)
我去拿这个。 我使用

drawCircle(0.75)
我去拿这个。 因此,根据通过的百分比,我创建了圆/半圆/环。希望我说的有道理

现在我唯一想做动画的部分是圆的形成。 所以说,当我调用
drawCircle(0.5)
时,它的动画应该从0.0%平滑到0.5% 目前,如果我使用计时器调用我的方法,并按顺序传递参数(0.00、0.1、0.2等到0.5),它可以工作。 例如:

但我认为这不是正确的方法。因此,我所寻找的是,如果有更好的方法来做到这一点,在swift中使用动画,从0.0到0.5的过渡是平滑的

[我不想更改创建圆圈的现有代码。我正在工作的人已经创建了一个现有代码库,现在更改现有代码有一定的时间因素和风险。正在查找函数“drawCircle(%)”的内容可用于实现所需的输出。欢迎提出建议。]


TIA>查看如何使用
UIBezierPath
CAShapeLayer
制作动画。基本上,您需要使用圆的方程式创建一个UIBezierPath。然后使用
strokeEnd
属性定义应设置多少圆动画。这里有一个答案供参考,尽管是在objective-c中


尝试在计时器中以短间隔传递一个小值,例如:0.016Um我想补充一点,您当前的动画制作方法效率不高,如果将间隔设置得非常小,则需要很长时间才能为进度条设置进度条:)您可以使用
CADisplayLink
。谢谢。是的,那是唯一的办法。已经改变了我的基本代码,工作得很好。谢谢你的帮助。