샘성의 iOS 개발 일지

UIView 에서 Layer 객체는 무엇이고 어떤 역할을 담당하는지 설명하시오. 본문

iOS/면접

UIView 에서 Layer 객체는 무엇이고 어떤 역할을 담당하는지 설명하시오.

SamusesApple 2023. 6. 19. 22:18
728x90

 

1. Layer 객체란?

  • 렌더링에 사용되는 view의 CALayer (Core Animation Layer)
  • View를 생성하면 해당 view에 대한 layer가 자동적으로 생성되고 View는 layer의 delegate를 자동적으로 채택하게 된다.
    (또 다른 CALayer 객체의 delegate를 채택 불가능)
  • layer위에 또 다른 subLayer들을 추가할 수 있음 (view를 올리는 것보다 훨씬 가벼움)
  • UIView의 subView들은 layer위에 올려지게 됨
  • nil이 될 수 없다. (view를 생성하면 자동으로 하나가 생성되기 때문)

 

 

2. CALayer란?

  • Core Animation Layer의 약자
  • UIKit에 비해 저수준의 프레임워크이기에 많은 기능을 제공하지만 코드량도 그 이상으로 많고 직접적으로 사용하기엔 사용성이 비교적 떨어짐.
  • 이미지로 된 컨텐츠를 그리거나 해당 컨텐츠에 애니메이션 효과를 주는 역할을 처리함
    (View의 레이아웃을, 터치 이벤트는 직접 처리하지만 View 안의 콘텐츠를 그리던가 애니메이션 효과를 주는 경우 Core Animation에서 처리하도록 위임하고 CALayer타입인 layer를 통해 처리 가능)

 

 

3. Layer의 역할?

  • View 안의 콘텐츠를 그리던가 애니메이션 효과를 처리한다.
  • view의 모서리를 둥글게 깎거나 background색을 변경하는 등의 역할을 한다.
  • 기존의 layer에 subLayer를 추가하여 마치 view를 올린 것처럼(그렇지만 실제 view를 올린것보단 훨씬 가볍게) 원하는 frame을 생성할 수 있다.

 

 

 

 

 

참고:

 

layer | Apple Developer Documentation

The view’s Core Animation layer used for rendering.

developer.apple.com

 

iOS) CALayer 제대로 이해하기

안녕하세요? 소들입니다 :) 오늘은 CALayer에 대해 공부해보려고 해요! UIView는 다음과 같이 CALayer 타입의 layer 라는 프로퍼티를 갖고 있거든여 이 layer는 우리가 직접적이건 간접적이건 꽤나? 건드

babbab2.tistory.com

 

CALayer Tutorial for iOS: Getting Started

In this article, you’ll learn about CALayer and how it works. You’ll use CALayer for cool effects like shapes, gradients and particle systems.

www.kodeco.com

728x90