LoginSignup
0
1

【SwiftUI】ウィジェットのアニメーションを無効にしたい

Posted at

はじめに

iOS16から自動でウィジェットにアニメーションが付与されるようになりました。

画面収録-2023-12-12-20.45.39.gif

これは便利なこともありますが、用途によってはアニメーションを無くしたい時もあります。
ちょうど無くしたい場面に遭遇したので、やり方を記事にしておきます。

サンプルの実装

struct DemoWidgetEntryView : View {
    var entry: Provider.Entry

    var body: some View {
        Text(entry.date.formatted(.dateTime.hour(.twoDigits(amPM: .omitted)).minute().second()))
    }
}

実装

extension View {
    @ViewBuilder
    func contentTransitionIfNeeded() -> some View {
        if #available(iOSApplicationExtension 16.0, *) {
            self.contentTransition(.identity)
        } else {
            self
        }
    }
}

使い方

struct demoWidgetEntryView : View {
    var entry: Provider.Entry

    var body: some View {
        Text(entry.date.formatted(.dateTime.hour(.twoDigits(amPM: .omitted)).minute().second()))
            .contentTransitionIfNeeded()
    }
}

こんな感じでアニメーションが消える

画面収録-2023-12-12-20.55.41.gif

公式ドキュメント

参考記事

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1