[swift] SwiftUI에서의 페이드인 및 페이드아웃 애니메이션 구현 방법
SwiftUI를 사용하여 사용자 인터페이스를 만들 때, 페이드인 및 페이드아웃 효과를 쉽게 구현할 수 있습니다. 이러한 애니메이션은 사용자 경험을 향상시키고 앱에 동적인 요소를 추가하는 데 도움이 됩니다. SwiftUI에서 페이드인 및 페이드아웃 애니메이션을 구현하는 방법을 살펴보겠습니다.
페이드인 애니메이션 구현하기
import SwiftUI
struct FadeInView: View {
@State private var opacity: Double = 0
var body: some View {
Text("Fade In Animation")
.font(.largeTitle)
.opacity(opacity)
.onAppear {
withAnimation(.easeIn(duration: 1)) {
opacity = 1
}
}
}
}
struct ContentView: View {
var body: some View {
VStack {
FadeInView()
}
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
위의 예제는 SwiftUI에서 페이드인 애니메이션을 구현하는 방법을 보여줍니다. FadeInView
이라는 사용자 지정 뷰를 생성하고, opacity
값을 사용하여 텍스트의 투명도를 제어합니다. onAppear
modifier를 사용하여 뷰가 나타날 때 애니메이션을 적용하고, withAnimation
함수를 사용하여 부드러운 효과를 줍니다.
페이드아웃 애니메이션 구현하기
import SwiftUI
struct FadeOutView: View {
@State private var shouldFadeOut: Bool = false
var body: some View {
Text("Fade Out Animation")
.font(.largeTitle)
.opacity(shouldFadeOut ? 0 : 1)
.onTapGesture {
withAnimation(.easeOut(duration: 1)) {
shouldFadeOut = true
}
}
}
}
struct ContentView: View {
var body: some View {
VStack {
FadeOutView()
}
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
위의 예제는 SwiftUI에서 페이드아웃 애니메이션을 구현하는 방법을 보여줍니다. FadeOutView
이라는 사용자 지정 뷰를 생성하고, shouldFadeOut
값에 따라 텍스트의 투명도를 제어합니다. onTapGesture
modifier를 사용하여 뷰를 탭할 때 애니메이션을 적용하고, 텍스트가 서서히 투명해지는 효과를 줍니다.
이러한 방식으로 SwiftUI에서 페이드인 및 페이드아웉 애니메이션을 구현할 수 있습니다. 이러한 애니메이션을 사용하여 앱의 사용자 인터페이스에 동적인 요소를 추가하여 사용자들의 시각적인 경험을 향상시킬 수 있습니다.
참고 자료: