var layer: CALayer { get }
먼저 CALayer에 대해 알아보기 전 iOS에서 화면에서 보여주는 여러 그래픽스 요소들을 그려내기 위해 어떤 것들이 존재하는지부터 알아보자.
OpenGL
은 iOS 디바이스의 그래픽스 하드웨어와 가장 빠르고 직접적인 접근을 지원한다. 이렇게 하드웨어에 높은 접근성을 지원하지만 간단한 작업조차 상당한 양의 코드가 필요하다.Core Graphics
와 Core Animation
등이 만들어 졌다.CALayer는 Core Animation
이 제공하는 요소 중 하나이다.
Core Animation이 CALayer를 제공하기 때문에 보다 편리하게 그래픽스 하드웨어에 직접적으로 접근을 하고 빠른 속도로 작업을 처리할 수 있다.
UIView에 속하며 UIView를 지원해주는 역할을 한다. 각 View마다 root layer는 하나씩 존재하고 이 root layer는 각각의 sub layer들을 가지고 있다.
UIView는 레이아웃과 터치 이벤트 처리 등 많은 작업을 한다. 하지만 실제로 뷰 위에 컨텐츠나 애니매이션을 그리는 행위는 직접적으로 다루지 않고 UIKit이 이러한 작업들을 Core Animation에게 위임한다. 즉, 실질적으로 뷰 위에 컨텐츠와 애니매이션을 그리는 행위는 CALayer가 담당하게 된다.