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

我有一个显示数字的标签,我想将其更改为更高的数字,但是,我想为其添加一些亮点。 我想通过缓出曲线将数字增加到更高的数字,以便加速然后减慢速度。 请,如何在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)
    }
}

我对斯威夫特并不完全熟悉。 但我以前使用抛物线来实现这一点。

详细的或多或少的是基本代数。 您有一个图表,其中一个轴上的值为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)

}
链接地址: http://www.djcxy.com/p/91149.html

上一篇: How to animate incrementing number in UILabel in swift

下一篇: Inserting in vector with reference to data of the same vector