티스토리 뷰

iOS

UIView vs CALayer

Peppo 2022. 12. 28. 12:51
728x90

요즘 Camera 작업을 하면서 Layer와 View가 많이 보여

둘의 차이점이 궁금해졌다.

검색을 해보다가 간단하게 잘 정리 되어있는곳을 참고하여 글을 작성해보려고 한다.

 

 

UIView, CALayer 무슨차이?

 

Layer는 low-level의 인터페이스를 제공합니다.

즉, UIView에서 조절할 수 없는 부분을 Layer를 통해 할 수 있다는거죠.

 

 

아래 그림을 보면 이해가 좀더 잘될 겁니다.

 

 

 

UIView

 

View는 더 복잡한 hierarchy (뷰계층)을 갖고 있습니다. 

레이아웃을 배치하기 위해 오토레이아웃(AutoLayout)을 사용합니다.

 

UIView 작업은 main Thread에서 발생하며, CPU를 사용합니다.

 

CALayer 

UIView 보다 hierarchy (뷰계층)가 간단하며, 화면에 그리는 속도가 빠릅니다.

view와 달리 responder chain이 없습니다.

 

Layer는 GPU에 바로 그려지고, 별도 thread에서 일어나기 때문에  CPU에 부담을 주지않습니다. 

 

 

요약

 

View는 Main thread에서 CPU를 사용하여 그려지는 반면,

Layer는 GPU를 사용해 별도의 thread에서 그립니다.

유연성이 필요한 경우에 CALayer를 사용해 UIView에서 한 수준 아래로 이동할 수 있습니다.

 

https://fassko.medium.com/uiview-vs-calayer-b55d932ff1f5

 

UIView vs CALayer

Here’s something useful to know — UIView’s are backed by CALayer’s. Layers offer a lower-level interface to the visual content. When we…

fassko.medium.com

 

 

728x90