[swift] SwiftUI에서의 반복 애니메이션 적용하기

SwiftUI를 사용하여 애니메이션을 적용할 때, 종종 해당 애니메이션을 반복하고 싶을 때가 있습니다. SwiftUI에서는 repeatForever 메서드를 사용하여 쉽게 애니메이션을 반복시킬 수 있습니다.

애니메이션을 적용할 View 준비하기

먼저, 애니메이션을 적용할 View를 준비해야 합니다. 예를 들어, 원을 화면에 표시하고 해당 원을 애니메이션으로 이동시키고 싶다고 가정해봅시다.

import SwiftUI

struct MovingCircleView: View {
    @State private var position = CGPoint(x: 50, y: 50)
    
    var body: some View {
        Circle()
            .frame(width: 50, height: 50)
            .position(position)
            .onAppear {
                withAnimation(Animation.linear(duration: 2).repeatForever(autoreverses: true)) {
                    position = CGPoint(x: 300, y: 300)
                }
            }
    }
}

위의 코드에서는 MovingCircleView를 정의하고, 해당 View에 Circle을 표시하였습니다. 또한, position 변수를 사용하여 원의 위치를 표현하였고, 해당 위치를 애니메이션으로 변경하겠다는 의도로 onAppear 블록 내에서 withAnimation을 사용하여 애니메이션을 적용했습니다.

애니메이션 반복 적용하기

이제 repeatForever 메서드를 사용하여 애니메이션을 반복하도록 설정하겠습니다. 위 예제에서는 repeatForever 메서드를 사용하여 원을 이동시키는 애니메이션을 계속 반복하도록 설정한 것입니다.

완료

이제 SwiftUI에서 애니메이션을 반복 적용하는 방법을 알아보았습니다. 위의 방법을 활용하여 여러 가지 형태의 애니메이션을 쉽게 반복시킬 수 있습니다. 본 예제는 Circle을 대상으로 하였지만, 이와 유사한 방식으로 다양한 View 및 애니메이션에도 적용할 수 있습니다.