| iOS | 13.0以上 |
| XCode(当サイトの環境) | 15.0.1 |
SwiftUIでは、transitionを使ってビューの変更時にアニメーションを追加することができます。この機能を活用することで、ビューの追加や削除、表示/非表示の切り替えなどにアニメーション効果を簡単に追加できます。
どのような時に使用される?
transitionは、特定のビューの状態が変化した際に、その変化にアニメーションを適用するために使用されます。
具体的には、ビューが追加されたり、削除されたり、あるいは表示/非表示が切り替わったりする際に、アニメーション効果を提供します。
例えば、以下のようにtransitionを使ってTextビューを表示・非表示する際に、スライドするアニメーションを適用することができます。
import SwiftUI
struct AnimationSmpView2: View {
@State private var isAnimating = true
var body: some View {
VStack {
// Circleの表示/非表示を切り替える
if isAnimating {
Circle()
.transition(.slide)
}
// ボタンを押してフラグの状態を変更
Button(action: {
withAnimation {
self.isAnimating.toggle()
}
}) {
HStack {
Text("Button")
Image(systemName: "circle.dotted")
}
}
}
}
}この例では、Textビューが表示・非表示になる際に.slideというトランジションを適用しています。.slideは、ビューが表示される際にスライドするトランジション効果を提供します。
アニメーションの種類
- .slide
- .scale
- .opacity
- .move(edge: .bottom)
transitionを使うと、表示されるビューの変更に対してアニメーションを簡単に適用できます。他にも様々なトランジション効果が用意されており、ビュー間の変更時にアニメーションをカスタマイズすることができます。
transitionとanimationの違いは?
transitionはビューの変更時にトランジション効果を提供し、ビューの追加/削除時や表示/非表示の切り替え時に使われます。一方、animationは特定のビューのプロパティが変更された際にその変更に対してアニメーションを追加します。
両者は異なるタイミングと使い方を持っており、異なる種類のアニメーションを提供するために使用されます。
まとめ
transitionを活用して、ビューの変更時にスムーズなアニメーションを追加し、アプリの魅力を向上させましょう。


