はじめに
iOS17からsymbolEffect
を使用してSFSymbolsにアニメーションをつけることができるようになりました。
しかし、指定の方法が結構難しいです。
.symbolEffect(.pulse.wholeSymbol)
こんな感じで、連なって指定しなければいけないので、いろんなパターンがあり、ビルドして確認するのは大変です。
そんな問題を解決するのが、SFSymbolsのアプリです。
ボタンでポチポチ設定していくだけで、.pulse.wholeSymbol
ここの部分を生成してくれます。
やりかた
③ アニメーションの形式と詳細を設定します。
(「プレビュー」ボタンを押すとアニメーションが再生されるので、確認することができます。)
④ コピーアイコンを押すとメニューが出てきます。
⑤ 「Swift用の構成をコピー」を選択します。
⑥ 先ほどコピーした構成をsymbolEffect
の中にペーストします。
import SwiftUI
struct ContentView: View {
@State private var trigger = false
var body: some View {
Image(systemName: "cloud.sun.rain.fill")
.font(.system(size: 100))
+ .symbolEffect(.bounce.down.byLayer, value: trigger)
.onTapGesture {
trigger.toggle()
}
}
}
おわり
SFSymbolsのアプリをいじっていたらたまたま見つけました。
今までSymbol名のコピーだけにしか使えないと思ってました。
公式ドキュメント