Search
Duplicate

View와 Layer의 차이 (UIView, CALayer)

Created
2023/10/16 02:42
Tags
iOS
태그

 면접 질문 : iOS에서 뷰와 레이어의 개념과 차이점에 대해 설명해보세요.

View와 Layer가 생겨난 배경

View는 UIKit 중 하나이고, Layer는 Core Animation 중 하나
그래픽을 그리려면 그래픽 하드웨어(GPU)에 접근하여 직접 그리면(OpenGL) 가장 렌더링 속도가 빠르지만, 코드의 양이 많은 단점이 존재한다.
코드의 양이 거대해지므로 애플은 이보다 고수준 프레임워크인 Core Animation과 UIKit 프레임워크를 만들었다.
UIKit은 Core Animation보다 한 단계 높은 수준의 API 이다.

UIView와 Layer 비교

UIView
Layer
위치
UIKit에서 제공
Core Animation에서 제공
스레드
메인 스레드
UIKit과는 다른 별도의 스레드 사용
UIResponder
UIResponder의 서브클래스이므로 tap, touch 등의 gesture 인식
UIResponder가 없기 때문에 tap, touch 인식 X
기능
CALayer를 wrapping 하고 있는 상태
복잡한 애니메이션과 퍼포먼스 측면에서 UIView보다 우수
범용성
UIKit은 모바일에서만 동작 cf) AppKit은 Mac에서만 동작
모바일, Mac 모두 동일하게 동작