[swift] CoreAnimation 애니메이션 반복

CoreAnimation은 iOS 및 macOS 개발에서 화면 요소에 애니메이션을 적용할 때 자주 사용됩니다. 특히, 애니메이션을 반복하려는 경우, CAMediaTiming 프로토콜을 사용하여 CoreAnimation 레이어의 시간 관련 속성을 구성해야 합니다.

1. repeatCount 속성 사용

repeatCount 속성은 애니메이션의 반복 횟수를 설정하는 데 사용됩니다. 이 속성의 값으로 Float 타입을 사용하며, 0을 지정하면 애니메이션이 실행되지 않습니다. Float.infinity를 사용하면 무한 반복됩니다.

다음은 repeatCount를 사용하여 3번 반복되는 애니메이션을 생성하는 예제 코드입니다.

let animation = CABasicAnimation(keyPath: "position.x")
animation.fromValue = 0
animation.toValue = 100
animation.duration = 1.0
animation.repeatCount = 3
yourLayer.add(animation, forKey: "positionAnimation")

2. autoreverses 속성 사용

autoreverses 속성은 애니메이션이 반복될 때 다시 반대 방향으로 애니메이션되는지 여부를 설정하는 데 사용됩니다. 이 속성의 기본값은 false입니다.

다음은 autoreverses를 사용하여 애니메이션이 반복될 때마다 반대 방향으로 애니메이션되는 예제 코드입니다.

let animation = CABasicAnimation(keyPath: "position.x")
animation.fromValue = 0
animation.toValue = 100
animation.duration = 1.0
animation.repeatCount = Float.infinity
animation.autoreverses = true
yourLayer.add(animation, forKey: "positionAnimation")

결론

CoreAnimation을 사용하여 레이어의 애니메이션을 반복하려면 repeatCountautoreverses와 같은 시간 관련 속성을 활용하면 됩니다. 이를 통해 원하는 애니메이션 효과를 쉽게 구현할 수 있습니다.

더 자세한 정보는 Core Animation Programming Guide를 참조하십시오.