第 55 章
使用 KeyframeAnimator 建立進階動畫

除了 PhaseAnimator,SwiftUI 在 iOS 17 中還引入了 KeyframeAnimator,允許開發者使用關鍵幀(keyframe)建立更進階動畫。在本教程中,我們將深入研究 KeyframeAnimator,並學習如何創建更複雜的動畫。

我們在前一個教學中討論的 PhaseAnimator 視圖(或修飾器)為開發者提供了在一系列相位中創建多步驟動畫的能力。通過為每個相位指定所需的動畫,PhaseAnimator 在相位變化時自動對內容進行動畫處理。它通過為你處理相位之間的過渡,簡化了構建複雜動畫的過程。

使用 KeyframeAnimator

對於階段性的動畫(Phase-based Animation),它適用於可以表示為離散狀態的動畫。當狀態轉換發生時,所有屬性都同時進行動畫。一旦特定狀態的動畫完成,SwiftUI 將平滑地過渡到下一個狀態。這個過程會應用到所有動畫階段中。

基於關鍵幀的動畫(Keyframe-based animation)旨在應對一種特定類型的動畫,其中每個屬性都可以獨立進行動畫化。通過利用關鍵幀,我們可以分別對個別的屬性建立動畫,從而為我們的動畫提供更大的靈活性和控制能力。

圖 55.1. 使用 KeyframeAnimator 建立的範例動畫
圖 55.1. 使用 KeyframeAnimator 建立的範例動畫

讓我們嘗試對一個表情符號圖標進行動畫(如上所示),你將理解我們如何使用關鍵幀動畫器(keyframe animator)。

定義動畫值

如前所述,基於關鍵幀的動畫使我們能夠獨立地對個別的屬性進行動畫。為了利用關鍵幀動畫器,我們首先定義一個結構,該結構包含我們希望進行動畫的所有屬性。以下是一個示例:

想更深入學習SwiftUI和下載完整程式碼?你可以從 AppCoda網站購買《精通 SwiftUI》完整電子版。

results matching ""

    No results matching ""