緊接著之前的文章琳轿,繼續(xù)Layer動畫的探究,希望大家可以學(xué)習(xí)到更多的動畫知識。
1. CASpringAnimation彈性動畫類
- CASpringAnimation是繼承CABasicAnimation類视译。
說明:Layer彈性動畫類似一個鐘擺裝置,由于受初始速度归敬、摩擦力大小酷含、擺錘自身重量等因素影響,經(jīng)歷不同的擺動時間汪茧,最終慢慢的停止椅亚。
2. CASpringAnimation屬性
- damping:阻尼,調(diào)整動畫到達穩(wěn)定時間的值舱污,默認值為10.0呀舔。阻尼值越大,動畫持續(xù)時間遠短扩灯∶睦担可以是任何的自然數(shù)霜瘪,如果為0,將永遠震蕩下去惧磺。
- mass:重量颖对,類似于錘擺的重量,默認值為1.0磨隘。
- stiffness:彈性系數(shù)缤底,默認值為100.0。值越小番捂,彈跳的越柔軟个唧,值越大,彈跳的越僵硬白嘁。
- initialVelocity: 初始速度坑鱼,默認值為0.0膘流,可以是一切整數(shù)絮缅。
說明:duration動畫持續(xù)時間,類似鐘擺一樣呼股,受眾多因素影響耕魄,我們無法動畫的持續(xù)時間。所以這個屬性必須這樣設(shè)置彭谁,如下所示:
pulse.duration = pulse.settlingDuration
彈性動畫demo
let pulse = CASpringAnimation(keyPath: "transform.scale")
pulse.damping = 7.5
pulse.fromValue = 1.25
pulse.toValue = 1.0
pulse.duration = pulse.settlingDuration
layer?.add(pulse, forKey: nil)