[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를 구현할 수 있습니다.

참고 자료