[swift] CoreAnimation 레이어 동적 그리기
CoreAnimation을 사용하면 화면에 동적으로 그래픽을 그릴 수 있습니다. 예를 들어, 동적으로 변하는 그래픽을 만들거나 사용자 상호작용에 따라 레이어를 업데이트 할 수 있습니다. 이를 위해서는 CALayer
를 사용하여 그래픽을 그리고 애니메이션을 적용할 수 있습니다.
CALayer를 사용한 그래픽 그리기
CALayer 클래스를 사용하면 코드로 동적으로 그래픽을 그릴 수 있습니다. CALayer의 하위클래스 중 하나를 만들어서 draw(_:)
메소드를 오버라이드하여 그래픽을 그릴 수 있습니다.
class CustomLayer: CALayer {
override func draw(in ctx: CGContext) {
// 그래픽 그리는 코드 작성
}
}
// CustomLayer 인스턴스 생성
let customLayer = CustomLayer()
그리기 메소드 안에서 CGContext
를 사용하여 그래픽을 그릴 수 있습니다. 이를 사용하여 도형, 텍스트, 이미지 등을 그릴 수 있습니다.
애니메이션 적용하기
UIView
의 애니메이션을 사용하여 뷰를 애니메이션화 할 수 있지만, CALayer
를 사용하여 더 세밀하게 그래픽을 애니메이션화할 수 있습니다. 예를 들어 CABasicAnimation
또는 CAKeyframeAnimation
을 사용하여 레이어의 특정 속성을 애니메이션화할 수 있습니다.
let animation = CABasicAnimation(keyPath: "transform.rotation")
animation.fromValue = 0
animation.toValue = CGFloat.pi * 2
animation.duration = 2.0
customLayer.add(animation, forKey: "rotationAnimation")
위 예제에서는 transform.rotation
키패스를 사용하여 레이어의 회전을 애니메이션화했습니다.
요약
CoreAnimation을 사용하면 CALayer
를 사용하여 동적으로 그래픽을 그리고 애니메이션을 적용할 수 있습니다. 이를 통해 다양한 효과를 제공하는 동적인 UI를 구현할 수 있습니다.