[Swift] 뷰(View)와 레이어(Layer)의 개념과 차이

Oni·2023년 10월 31일
0

기술면접

목록 보기
9/13
post-thumbnail

iOS에서 뷰(View)와 레이어(Layer)는 그래픽 요소를 표시하고 관리하는 데 사용되는 중요한 구성 요소이다.

1. 뷰(View) 🔗

1-1. 화면에 보이는 요소

뷰(View)는 사용자 인터페이스의 기본 구성 요소이다. 화면에 표시되는 버튼, 레이블, 이미지, 입력 필드 등의 모든 요소는 뷰다.

1-2. 사용자 상호작용

뷰는 사용자와의 상호작용을 처리할 수 있는 기능을 가지고 있다. 터치 이벤트나 제스처와 같은 사용자 입력을 감지하고, 이벤트를 처리할 수 있다.

1-3. 뷰 계층 구조

뷰들은 계층 구조로 구성될 수 있다. 즉, 뷰 안에 다른 뷰를 포함시킬 수 있다. 이렇게 함으로써 복잡한 사용자 인터페이스를 구성할 수 있다.

1-4. UIKit에서 제공

뷰는 UIKit 프레임워크에서 제공되며, 주로 Interface Builder에서 디자인할 수 있다.

1-5. 커스터마이징

뷰는 커스터마이징이 가능하여, 배경색, 크기, 모양, 애니메이션 등을 쉽게 조절할 수 있다.


2. 레이어(Layer) 🔗

2-1. 화면에 그리는 객체

레이어(Layer)는 뷰의 내부에 존재하며, 실제로 화면에 그려지는 객체이다. 뷰는 하나 이상의 레이어를 가질 수 있다.

2-2. 비주얼 표현

레이어는 화면에 보이는 것을 표현한다. 뷰가 그림자, 투명도, 애니메이션 효과 등을 가지고 있으면 이러한 속성들은 주로 레이어에 의해 나타낼 수 있다.

2-3. Core Animation에서 사용

레이어는 Core Animation 프레임워크에서 사용된다. Core Animation은 애니메이션 및 그래픽 작업을 위한 강력한 도구이며, 레이어를 이용하여 화면에 다양한 효과를 적용할 수 있다.

2-4. 커스터마이징

레이어를 직접적으로 사용하는 경우에도 뷰보다는 상대적으로 낮은 수준의 인터페이스를 제공하므로 더 세밀한 커스터마이징이 가능하다.


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

간단히 말해서, 뷰는 사용자 인터페이스의 기본 구성 요소이고, 레이어는 뷰의 내부에서 시각적으로 나타나는 객체이다. 레이어는 주로 Core Animation 프레임워크에서 화면 표현을 담당하며, 뷰는 사용자 인터페이스와 상호작용하고 사용자 입력을 처리하는 데 사용된다.

profile
하지만 나는 끝까지 살아남을 거야!

0개의 댓글