[ios] SwiftUI 애니메이션 효과

SwiftUI는 간단하면서도 강력한 애니메이션 효과를 다룰 수 있게 해줍니다. SwiftUI로 애니메이션을 추가하는 방법을 살펴보겠습니다.

애니메이션 뷰 추가

SwiftUI에서 애니메이션 뷰를 추가하려면 withAnimation 함수를 사용하세요. 이 함수는 특정 코드 블럭 내에서 애니메이션을 시작하고 끝내주는 역할을 합니다.

struct ContentView: View {
    @State private var isAnimating = false

    var body: some View {
        Button("애니메이션 추가") {
            withAnimation {
                self.isAnimating.toggle()
            }
        }
        .scaleEffect(isAnimating ? 1.5 : 1.0)
    }
}

위 예제에서는 버튼 클릭 시 isAnimating의 상태에 따라 크기가 조절되는 간단한 애니메이션을 보여줍니다.

애니메이션 타이밍 및 이징 제어

애니메이션의 타이밍이나 이징을 제어하려면 withAnimation 함수 내에 애니메이션 설정을 추가할 수 있습니다.

withAnimation(.easeInOut(duration: 2)) {
    self.isAnimating.toggle()
}

위의 예제에서는 easeInOut 이징과 2초 동안 애니메이션이 실행됩니다.

다양한 애니메이션 효과

SwiftUI에서 제공하는 다양한 애니메이션 효과는 주로 View 프로토콜을 확장하여 사용합니다.

예를 들어, rotationEffect를 사용하여 회전 애니메이션을 추가할 수 있고, offset을 사용하여 위치를 이동하는 애니메이션을 추가할 수 있습니다.

Circle()
    .offset(x: isAnimating ? 50 : 0, y: 0)
    .animation(.easeInOut(duration: 2))

결론

SwiftUI는 풍부한 애니메이션 효과를 제공하여 사용자에게 뛰어난 사용자 경험을 제공할 수 있습니다. withAnimation 함수를 사용하여 간단한 애니메이션부터 복잡한 애니메이션까지 쉽게 구현할 수 있습니다.

더 많은 정보는 Apple 공식 SwiftUI 문서에서 확인할 수 있습니다.