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 | UIView |
|---|---|---|
| 역할 | 시각적 표현 | 사용자 인터랙션 포함 |
| 계층 구조 | 레이어 계층 | 뷰 계층 |
| 터치 이벤트 처리 | 불가 | 가능 |
| 애니메이션 | 고성능 Core Animation 지원 | 제한된 애니메이션 |
| 오버헤드 | 낮음 | 상대적으로 높음 |
UIView는 CALayer를 포함하며, 대부분의 시각적 처리는 CALayer에 위임됩니다.
CALayer는 Core Animation을 기반으로 암시적 및 명시적 애니메이션을 지원합니다.
CABasicAnimation, CAKeyframeAnimation, CAAnimationGroup 등을 사용CALayer는 sublayers 속성을 통해 다른 레이어를 포함할 수 있습니다. 이를 통해 복잡한 그래픽 계층을 구성할 수 있습니다.
layer.addSublayer(subLayer)
cornerRadius, masksToBounds)CALayer는 iOS에서 뷰의 시각적 표현을 담당하는 핵심 구성 요소입니다. UIView보다 경량이며, 고성능 렌더링과 애니메이션이 필요할 때 매우 유용합니다. UIView의 동작 원리를 이해하고 최적화된 UI를 구성하기 위해서는 CALayer에 대한 이해가 필수적입니다.