Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.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
Swift2 如何在swift中设置UILabel中递增数字的动画_Swift2_Nstimer_Uianimation_Xcode7.1_Ios9.2 - Fatal编程技术网

Swift2 如何在swift中设置UILabel中递增数字的动画

Swift2 如何在swift中设置UILabel中递增数字的动画,swift2,nstimer,uianimation,xcode7.1,ios9.2,Swift2,Nstimer,Uianimation,Xcode7.1,Ios9.2,我有一个标签显示一个数字,我想把它改成一个更高的数字,但是,我想给它添加一点flare。我想让数字增加到更高的数字,并有一个缓进-缓出曲线,这样它会加速然后减速。请问,如何在swift中实现这一点,这是我的代码。谢谢 let newValue : Double = 1000 let oldValue : Double = 500 timer = NSTimer.scheduledTimerWithTimeInterval(0.1, target: self, selector: Se

我有一个标签显示一个数字,我想把它改成一个更高的数字,但是,我想给它添加一点flare。我想让数字增加到更高的数字,并有一个缓进-缓出曲线,这样它会加速然后减速。请问,如何在swift中实现这一点,这是我的代码。谢谢

 let newValue : Double = 1000 
 let oldValue : Double = 500 

 timer = NSTimer.scheduledTimerWithTimeInterval(0.1, target: self, selector: Selector("countAnimation:"), userInfo: ["oldValue":oldValue, "newValue": newValue],  repeats: true)

func countAnimation(timer: NSTimer)
{
    let dict = timer.userInfo as? [String:AnyObject]
    var OldTotalValue : Double = (dict!["oldValue"] as? Double)!
    let newTotalValue : Double = (dict!["newValue"] as? Double)!

    OldTotalValue = OldTotalValue + 10


    if newTotalValue < OldTotalValue
    {
        timer.invalidate()
    }
  else

    {
         mylabel.text =  String(OldTotalValue)
    }
}
let newValue:Double=1000
让oldValue:Double=500
timer=NSTimer.scheduledTimerWithTimeInterval(0.1,目标:self,选择器:选择器(“countAnimation:”),用户信息:[“oldValue”:oldValue,“newValue”:newValue],重复:true)
func countAnimation(计时器:NSTimer)
{
让dict=timer.userInfo为?[字符串:AnyObject]
var OldTotalValue:Double=(dict![“oldValue”]as?Double)!
让newTotalValue:Double=(dict![“newValue”]作为?Double)!
OldTotalValue=OldTotalValue+10
如果newTotalValue
我对swift不太熟悉。但我以前用抛物线实现过

具体来说,发生的事情或多或少是基础代数。有一个图形,在一个轴上有一个值x,然后在时间轴上有一个值y。您希望每个动画之间的时间延迟增加,直到达到平台

例如:

x=1延时=100ms,x=2延时=200ms,x=3延时=310ms,x=4延时=430ms

请注意,每一次增加都比前一次多

从数学上来说,要得到这样的斜率,你可以坐在一个公式前面,比如:

y=-x+x^2

播放直到你得到一个输出,这样每增加一个x,你的延迟就相当于一个很好的减速,在动画中看起来很干净

谢天谢地,苹果公司提供了可以做到这一点的库,我通过快速搜索找到了它:

 UIViewAnimationOptions.CurveEaseOut
此库将为您提供一条快速启动然后减速的曲线,以下是其余曲线请检查:

func countAnimation(timer: NSTimer)
{
    UIView.transitionWithView(label,
                          duration: 1.0,
                          options: [.CurveEaseInOut],
                          animations: { () -> Void in
                          // Write your code here
    }, completion: nil)

}

你能更准确地描述一下它应该是什么样子吗?例如,旧值是否应淡出,而新值是否应在同一位置淡入?还是旧的一个在新的一个在进来的时候,像一个拾荒者一样,把它放在一边?或者你的目标是什么?可能重复: