[iOS:TIL] CALayer

hello_hidi·2022년 10월 8일
0

CALayer

Core Animation의 약자인데 이게 뭐냐? 이걸 알려면 iOS에서 그래픽에 우리가 어떻게 접근하게 된 것인지 배경을 알아봐야 된다.

그래픽 접근 배경

1. openGL

iOS 어플을 사용할 때 화면이 끊기지 않고 "부드럽게" 그려지도록하기 위해서 초당 60 프레임 속도를 유지해야 하는데, 이를 위해 GPU에서 직접 실행되는 그래픽에 강력한 "OPenGL"이 생김. 그래픽 하드웨어에 가장 빠르게 액세스 할 수 있지만 단순 작업에도 코드 양이 매우 방대했다..

2. Core Graphics & Core Animation

그래서 더 적은 코드로 그래픽을 구현할 수 있는 Core Graphics라는 것을 만들었따. 그리고 더 간단히 만들기 위해 Core Animation

3. UIKit

BUT. 애플은 또 "근데 앱 만드는데 이렇게 고급 기능이 다 필요함? 아닌 것 같은데?"라고 생각해 Core Animation을 또 간단하게 만들어버린 것. 이게 바로 우리가 사용하고 있는 UI Component를 담고 있는바로 UIKit이다.

CALayer

문제는 너무 가장 Low Level에 있는 OpenGL이나 Core Graphics 보다는 적은(제한된) 기능을 제공할 수 밖에 없음 아무래도 상위 레벨로 갈 수록 하위 레벨의 모든 기능을 다룰 수는 없으니까

즉. UIKit에 속한 UIView를 이용하여 레이아웃, 터치 이벤트 등 많은 작업을 처리하긴 하지만 사실은 뷰 위에 컨텐츠나 애니메이션을 그리는 행위는 직접 하지 않음 UIView는 직접 화면에 그리는 시각적 행위를 Core Animation에게 위임하는데, 그것이 바로 오늘 공부하는 CALayer인 것이다~

CALayer의 특성

  1. UIView는 하나의 CALayer(Root)만 가지고 있다
  2. CALayer(Root)는 SubLayer를 여러 개 둘 수 있다
  3. UIView의 SubView는 UIView의 CALayer(Root) 위에 얹혀지는 것이다

출처 : https://babbab2.tistory.com/53

profile
안뇽희디

0개의 댓글