CALayer

CALayer | Apple Developer Documentation

작성 배경

스크린샷 2024-12-03 오후 6.51.25.png

위 사진처럼 특정 Cell에 그림자 효과를 넣을 때 사용하던 layer에 대해 자세히 알고싶어져 작성하게 되었습니다.

CALayer란?

스크린샷 2024-12-03 오후 7.26.40.png

이미지 기반 콘텐츠를 관리하고 해당 콘텐츠에 애니메이션을 적용할 수 있는 객체

주요 역할

  1. 뷰의 백업 저장소(backing store) 역할을 수행한다. UIView가 화면에 콘텐츠를 표시하기 위해 렌더링하는 모든 시각적 요소는 CALayer를 통해 관리된다.
  2. UIView에 종속되지 않고 자체적으로 콘텐츠 관리가 가능하다.
  3. 배경색, 경계선, 그림자 등의 효과 설정

콘텐츠의 기하학적 정보 관리

  1. 시각적 특성 뿐만 아니라 기하학적 정보도 관리
    1. position, size, transform과 같은 정보를 통해 콘텐츠가 화면에 어떻게 표시될지 정의함
  2. 위 정보를 바탕으로 애니메이션을 실행할 수도 있음

애니메이션과 CAMediaTiming

  1. CALayer의 속성 변경은 애니메이션을 통해 시각적으로 표현될 수 있다. 레이어의 위치나 크기를 변경하는 애니매이션을 표시 가능하다.
  2. CAMediaTiming 프로토콜을 채택하여 레이어 및 애니매이션의 타이밍 정보를 관리한다.
    1. CAMediaTiming 프로토콜은 애니메이션의 duration, speed등의 타이밍 특성을 정의한다.
    2. 애니메이션의 시작 시간, 지속 시간 등을 세밀하게 조정할 수 있다.

CALayer의 Delegate

  1. CALayer 객체는 텔리게이트 패턴을 사용하여 특정 작업을 다른 객체에 위임할 수 있다.