我有一个显示数字的标签,我想将其更改为更高的数字,但是,我想为其添加一点耀斑。我希望通过缓入曲线将数字递增到更高的数字,以便它先加速然后减速。请,如何快速实现这一点,这是我的代码。谢谢。
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)
}
}
最佳答案
我对 swift 并不完全熟悉。但是我之前已经使用抛物线曲线实现了这一点。
详细地说,发生的事情或多或少是基本代数。您有一个图表,其中一个轴上的值是 x,然后是时间轴上的 y。您希望每个动画之间的时间延迟增加,直到达到稳定状态。
例如:
x=1 延迟= 100ms,x=2 延迟=200ms,x=3 延迟=310ms,x=4 延迟=430ms
请注意,每次增加都比前一次增加。
从数学上讲,要获得这样的斜率,您可以坐在一个公式前面,例如:
y = -x + x^2
并尝试使用它,直到你得到一个输出,这样对于 x 的每一个增量,你的延迟对应一个很好的减速,在动画上看起来很干净。
值得庆幸的是,Apple 作为包含的库可以做到这一点,我通过快速搜索找到了它:
UIViewAnimationOptions.CurveEaseOut
该库将为您提供一条快速启动然后减速的曲线,这是 Apple Documentation 的其余部分
关于swift2 - 如何在 swift 中为 UILabel 中的递增数字设置动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36370213/