[TIL] CALayer

Eden·2025년 8월 7일

CALayer는 Core Animation 프레임워크의 핵심 클래스 중 하나로, iOS 및 macOS에서 화면에 그려지는 모든 시각적 콘텐츠의 기본 단위입니다. UIKit의 UIView는 내부적으로 CALayer를 소유하고 있으며, 실제로 화면에 그려지는 작업은 CALayer가 수행합니다.


주요 역할

  • 콘텐츠 렌더링 (이미지, 색상, 텍스트 등)
  • 애니메이션 처리 (암시적 및 명시적 애니메이션 지원)
  • 뷰의 시각적 속성 관리 (테두리, 그림자, 반투명도 등)
  • 계층 구조 기반의 렌더링

주요 속성

  • contents: 레이어에 표시할 이미지나 콘텐츠
  • backgroundColor: 배경색
  • cornerRadius: 모서리 반경 (둥글게 만들기)
  • borderColor, borderWidth: 테두리 색상 및 두께
  • shadowColor, shadowOpacity, shadowOffset, shadowRadius: 그림자 관련 속성
  • opacity: 투명도 (0.0 ~ 1.0)
  • transform: 3D 변환
  • masksToBounds: 하위 레이어가 부모의 경계를 넘지 않도록 마스크 처리 여부

CALayer vs UIView

항목CALayerUIView
역할시각적 표현사용자 인터랙션 포함
계층 구조레이어 계층뷰 계층
터치 이벤트 처리불가가능
애니메이션고성능 Core Animation 지원제한된 애니메이션
오버헤드낮음상대적으로 높음

UIView는 CALayer를 포함하며, 대부분의 시각적 처리는 CALayer에 위임됩니다.


애니메이션 처리

CALayer는 Core Animation을 기반으로 암시적 및 명시적 애니메이션을 지원합니다.

  • 암시적 애니메이션: 속성을 변경하면 자동으로 애니메이션이 발생
  • 명시적 애니메이션: CABasicAnimation, CAKeyframeAnimation, CAAnimationGroup 등을 사용

서브레이어 관리

CALayer는 sublayers 속성을 통해 다른 레이어를 포함할 수 있습니다. 이를 통해 복잡한 그래픽 계층을 구성할 수 있습니다.

layer.addSublayer(subLayer)

실무 활용 예시

  • 사용자 정의 뷰에 커스텀 그림자/테두리 효과 적용
  • 고성능 애니메이션 구현
  • 원형 프로필 이미지 처리 (cornerRadius, masksToBounds)
  • 로딩 인디케이터 등에서의 회전 애니메이션 처리

결론

CALayer는 iOS에서 뷰의 시각적 표현을 담당하는 핵심 구성 요소입니다. UIView보다 경량이며, 고성능 렌더링과 애니메이션이 필요할 때 매우 유용합니다. UIView의 동작 원리를 이해하고 최적화된 UI를 구성하기 위해서는 CALayer에 대한 이해가 필수적입니다.

profile
iOS Dev

0개의 댓글