티스토리 뷰
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
728x90
'iOS' 카테고리의 다른 글
[Combine] Chapter11 : Timers (0) | 2023.01.08 |
---|---|
[Combine] Chapter10 : Debugging (0) | 2023.01.03 |
[Combine] Chapter6 : Time Manipulation Operators (0) | 2022.11.24 |
[Swift 알고리즘] - 문자열 내림차순으로 배치하기 (Programmers) (0) | 2022.11.15 |
[Combine] Chapter5: Combining Operators (0) | 2022.11.10 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- removeLast()
- RIBs tutorial
- Swift RIBs
- Swift joined
- Swift init
- RTCCameraVideoCapturer
- 2023년 회고
- Swift Leetcode
- 원티드 프리온보딩
- Swift 프로퍼티
- Swift 내림차순
- Swift joined()
- Swift Error Handling
- Combine: Asynchronous Programming with Swift
- iOS error
- Class
- swift protocol
- swift reduce
- Swift final
- swift 고차함수
- Swift 프로그래머스
- ios
- swift programmers
- swift (programmers)
- Swift ModernRIBs
- Swift
- swift property
- Swift inout
- Swift 알고리즘
- CS 네트워크
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함