
- SwiftUI 教程
- SwiftUI - 首頁
- SwiftUI - 概述
- SwiftUI vs UIKit
- SwiftUI 環境
- SwiftUI - 環境設定
- SwiftUI - 基本元件
- SwiftUI - 構建第一個應用程式
- SwiftUI 檢視
- SwiftUI - 檢視
- SwiftUI - 自定義文字檢視
- SwiftUI - 自定義影像檢視
- SwiftUI - 堆疊
- SwiftUI 繪製形狀
- SwiftUI - 形狀
- SwiftUI - 繪製線條
- SwiftUI - 繪製矩形
- SwiftUI - 繪製圓角矩形
- SwiftUI - 繪製三角形
- SwiftUI - 繪製圓形
- SwiftUI - 繪製星形
- SwiftUI - 繪製多邊形
- SwiftUI - 繪製餅圖
- SwiftUI - 使用內建形狀
- SwiftUI - 文字
- SwiftUI - 文字檢視
- SwiftUI - 文字輸入和輸出
- SwiftUI - 顏色
- SwiftUI - 顏色
- SwiftUI - 顏色選擇器
- SwiftUI - 漸變
- SwiftUI - 調整顏色
- SwiftUI - 效果
- SwiftUI - 效果
- SwiftUI - 混合效果
- SwiftUI - 模糊效果
- SwiftUI - 陰影效果
- SwiftUI - 懸停效果
- SwiftUI - 動畫
- SwiftUI - 動畫
- SwiftUI - 建立動畫
- SwiftUI - 建立顯式動畫
- SwiftUI - 多個動畫
- SwiftUI - 轉場
- SwiftUI - 非對稱轉場
- SwiftUI - 自定義轉場
- SwiftUI - 圖片
- SwiftUI - 圖片
- SwiftUI - 圖片作為背景
- SwiftUI - 旋轉圖片
- SwiftUI - 媒體
- SwiftUI - 檢視佈局
- SwiftUI - 檢視佈局
- SwiftUI - 檢視大小
- SwiftUI - 檢視間距
- SwiftUI - 檢視填充
- SwiftUI - 列表和表格
- SwiftUI - 列表
- SwiftUI - 靜態列表
- SwiftUI - 動態列表
- SwiftUI - 自定義列表
- SwiftUI - 表格
- SwiftUI - 表單
- SwiftUI - 表單
- SwiftUI - 將表單分成多個部分
- SwiftUI 有用資源
- SwiftUI - 有用資源
- SwiftUI - 討論
SwiftUI - 建立動畫
動畫是建立具有吸引力的 SwiftUI 使用者介面的最強大的工具。它以各種方式為檢視新增動畫。在 SwiftUI 中,我們可以透過兩種方式建立動畫:隱式動畫和顯式動畫。隱式動畫是在檢視狀態發生變化時自動處理動畫的動畫,而顯式動畫則用於顯式建立動畫。因此,本章我們將學習如何隱式建立動畫。
`.animation()` 修飾符
在 SwiftUI 中,我們可以藉助 `.animation()` 修飾符來應用動畫。`.animation()` 修飾符用於將指定的動畫應用於給定的檢視,並且只要修飾符中指定的值發生變化,檢視就會進行動畫處理。這是一種隱式動畫。
語法
以下是語法:
func animation<V>(_animation:Animation?, value: V) -> some View where V : Equatable
引數
此方法接受以下引數:
animation: 表示我們要應用於檢視的動畫。如果此引數的值為 nil,則檢視不會進行動畫處理。此引數的值可以是以下值之一:
default: 用於預設動畫。
linear: 建立以恆定速度移動的動畫。
easeIn: 建立一個動畫,該動畫開始緩慢,但當它到達運動結束時速度會加快。
easeOut: 建立一個動畫,該動畫開始快速,但當它到達運動結束時速度會減慢。
easeInOut: 建立一個具有 easeIn 和 easeOut 動畫特性的動畫。
bouncy: 建立彈跳動畫。
smooth: 建立無彈跳動畫。
snappy: 建立快速動畫。
spring: 建立彈簧動畫。
interactiveSpring: 建立持續時間較短的彈簧動畫。
interpolatingSpring: 建立一個彈簧動畫,該動畫使用阻尼彈簧模型來生成 1 到 0 之間的數值。
value: 表示將觸發動畫的值。
在 SwiftUI 中建立基本動畫
要建立基本動畫,請按照以下步驟操作:
步驟 1:建立一個新專案 - 要建立一個新專案,請開啟 Xcode,然後建立一個新的 SwiftUI 專案。
步驟 2:建立動畫 - 現在,藉助 `.animation()` 方法,我們將建立一個簡單的動畫。
示例
以下 SwiftUI 程式用於建立簡單的動畫。在這裡,當我們點選按鈕時,按鈕的大小會增加。
import SwiftUI struct ContentView: View { @State private var size = 3.3 var body: some View { Button("Click Me"){ size += 3 }.frame(width: 100, height: 200) .background(Circle().fill(.mint)) .scaleEffect(size) .animation(.easeOut, value: size) } } #Preview { ContentView() }
輸出

在 SwiftUI 中建立彈簧動畫
使用 `.animation()` 修飾符,我們還可以建立彈簧動畫。在這裡,我們將 spring() 方法傳遞給 `.animation()` 方法,因此檢視會像彈簧一樣進行動畫處理。
語法
以下是語法:
func spring( duration: TimeInterval = 0.5, bounce: Double = 0.0, blendDuration: Double = 0 ) -> Animation
引數
此方法接受以下引數,使用這些引數我們可以控制彈簧動畫:
duration: 定義彈簧的振盪週期。
bounce: 定義彈簧的彈跳程度。這裡 0 表示無彈跳,正值表示彈性增加,負值表示過度阻尼彈簧。
blendDuration: 定義插值變化的秒數。
示例
以下 SwiftUI 程式用於建立彈簧動畫。
import SwiftUI struct ContentView: View { @State private var size = false var body: some View { VStack{ Rectangle() .stroke(.blue) .frame(width: size ? 200 : 100, height: size ? 90 : 50) .animation(.spring(duration: 0.2, bounce: 0.1, blendDuration: 1), value: size) Button("Click to See Magic"){ size.toggle() }.foregroundColor(.red) } } } #Preview { ContentView() }
輸出

在 SwiftUI 中配置動畫
藉助以下方法,我們可以輕鬆配置動畫:
名稱 | 描述 |
---|---|
delay() | 它用於將動畫的開始延遲給定數量的秒數。 |
repeatCount() | 它用於根據給定的次數重複指定的動畫。 |
repeatForever() | 它用於無限重複指定的動畫。 |
speed() | 它用於控制動畫的速度。 |