iOS 8 Spring Animation

來源:互聯網
上載者:User

標籤:

Spring Animation 簡介

Spring Animation 本質上是一種特殊的動畫曲線,自從 iOS 7 開始被廣泛應用在系統動畫中。中示範的內建的動畫效果實際上都使用了 Spring Animation:

事實上,從 iOS 7 起幾乎所有的系統動畫都用的是 Spring Animation,包括 App 檔案夾開啟/關閉效果、鍵盤彈出效果、UISwitch 控制項的開關效果、不同 View Controller 之間的 Push 動畫、Modal 出現和消失的動畫、Siri 的出現和消失動畫,等等。為 Spring Animation 和普通的動畫的運動曲線的對比:

為了更加直觀,我做了一個示範項目,從左至右分別列出了 Spring Animation, Ease-Out Animation 和 Linear Animation 的動畫效果:

可以看到,和系統內建的 ease-out 效果相比,Spring Animation 前期速度增加得更快,在動畫時間一定的前提下,給人感覺更加快速、乾淨。

API

自 iOS 8 開始,Apple 公開了 Spring Animation 的 API,開發人員也可以使用簡單的代碼建立這類動畫效果了:

+ (void)animateWithDuration:(NSTimeInterval)duration                      delay:(NSTimeInterval)delay     usingSpringWithDamping:(CGFloat)dampingRatio      initialSpringVelocity:(CGFloat)velocity                    options:(UIViewAnimationOptions)options                 animations:(void (^)(void))animations                 completion:(void (^)(BOOL finished))completion

該方法是 UIView 的類方法。 

Spring Animation 的 API 和一般動畫相比多了兩個參數,分別是 usingSpringWithDamping 和 initialSpringVelocity 。 

dumping ratio

usingSpringWithDamping 的範圍為 0.0f 到 1.0f ,數值越小「彈簧」的震動效果越明顯。示範了在 initialSpringVelocity 為 0.0f 的情況下, usingSpringWithDamping 分別取 0.2f , 0.5f 和 1.0f 的情況。 

initial velocity

initialSpringVelocity 則表示初始的速度,數值越大一開始移動越快。示範了在 usingSpringWithDamping 為 1.0f 時, initialSpringVelocity 分別取 5.0f , 15.0f 和 25.0f 的情況。值得注意的是,初始速度取值較高而時間較短時,也會出現反彈情況。 

使用

Spring Animation 是線性動畫或 ease-out 動畫的理想替代品。由於 iOS 本身大量使用的就是 Spring Animation,使用者已經習慣了這種動畫效果,因此使用它能使 App 讓人感覺更加自然,用 Apple 的話說就是「instantly familiar」。此外,Spring Animation 不只能對位置使用,它適用於所有可被添加動畫效果的屬性。

iOS 8 Spring Animation

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.