[swift] Swift Core Graphics를 사용하여 애니메이션 구현하기

Swift에서 애니메이션을 구현할 때 Core Graphics를 사용하면 간단하고 유연한 방식으로 애니메이션을 구현할 수 있습니다. Core Graphics는 그래픽 그리기와 애니메이션을 위한 강력한 도구를 제공하여 사용자 정의된 그래픽을 만들고, 변형하며, 애니메이션하는 것을 가능하게 해줍니다.

1. Core Graphics를 사용한 애니메이션 기본 구조

Core Graphics를 사용하여 애니메이션을 만들기 위해서는 일련의 기본적인 단계가 필요합니다.

1.1. CALayer 만들기

먼저, 애니메이션을 적용할 CALayer를 만듭니다. CALayer는 화면의 내용을 꾸미기 위한 객체로, 특정한 그래픽 콘텐츠를 표시하거나 변형함으로써 화면에 내용을 표시할 수 있게 합니다.

let animationLayer = CALayer()
animationLayer.frame = CGRect(x: 0, y: 0, width: 100, height: 100)
self.view.layer.addSublayer(animationLayer)

1.2. 애니메이션 속성 설정

다음으로, 애니메이션에 적용할 속성을 설정합니다. 예를 들어, position 속성을 변경하여 애니메이션을 만들 수 있습니다.

let animation = CABasicAnimation(keyPath: "position")
animation.fromValue = animationLayer.position
animation.toValue = CGPoint(x: 200, y: 200)
animation.duration = 2.0

1.3. CALayer에 애니메이션 적용

속성을 설정한 후, CALayer 객체에 애니메이션을 추가합니다.

animationLayer.add(animation, forKey: "position")

2. Core Graphics로 다양한 애니메이션 구현하기

2.1. 그라데이션 애니메이션

Core Graphics를 사용하면 색상을 조절하여 그라데이션 애니메이션을 만들 수 있습니다. 아래 코드는 배경색의 그라데이션을 변경하는 애니메이션을 구현하는 예시입니다.

let animation = CABasicAnimation(keyPath: "backgroundColor")
animation.fromValue = UIColor.red.cgColor
animation.toValue = UIColor.blue.cgColor
animation.duration = 2.0
animationLayer.add(animation, forKey: "backgroundColor")

2.2. 도형 애니메이션

도형을 만들고, Core Graphics를 사용하여 애니메이션하는 것도 가능합니다. 아래 코드는 사각형의 크기를 변경하여 애니메이션을 만드는 예시입니다.

let animation = CABasicAnimation(keyPath: "bounds.size")
animation.fromValue = CGSize(width: 100, height: 100)
animation.toValue = CGSize(width: 200, height: 200)
animation.duration = 2.0
animationLayer.add(animation, forKey: "bounds.size")

위와 같이 Core Graphics를 사용하여 복잡하지 않은 애니메이션을 간단하게 만들 수 있다는 것을 알 수 있습니다.

Core Graphics에는 다양한 API가 있으며 각종 애니메이션을 만들 수 있는 다양한 방법이 있습니다. 자유롭게 활용하여 원하는 시각적인 효과를 만들어보세요!

참고 자료