티스토리 뷰
오늘은 Responder Chain, FirstResponder에 대해 정리해 보려고 합니다. :)
사용자가 앱에 터치를 하게 될때
앱이 어떻게 알고 반응하게 되는지 파악하는데 도움이 될거 같아요 !!
바로 스터디 해보겠습니다 .
Responder
Responder는 이벤트를 처리하고 반응할 수 있는 객체 입니다.
모든 Responder 객체는 UIResponder에서 상속된 클래스의 인스턴스 입니다.
Responder Chain
이벤트를 처리할수 있는 Responder를 쭉 찾아내는 것 -> 쭉 찾았을때도 없을시 해당 이벤트를 버림
예 ) UILabel을 터치했다고 가정 해봅시다. Responder Chain은 아래와 같이 동작합니다.
1. 사용자: UILabel 터치
(사용자 -> UILabel)
2. UILabel: 난 그냥 보여주기만 하는건데 👀 내가 아닌가보다 다음 responder UIView ~
(UILabel -> UIView)
3. UIView: 뭐야 나 이벤트 처리할줄 몰름. 다음 패스
(UIView -> UIView)
4. UIView: 뭐 ㅡㅡ
(UIView -> UIWindow)
5. 이런식으로 쭉~ 이벤트를 처리할 객체를 찾고 찾으면서 UIApplicationDelegate 까지 갔는데도 처리할게 없다면
해당 이벤트를 버려버립니다.
방금 보았던 flow를 Responder Chain 이라고 합니다.
First Responder
터치 이벤트에 응답할 수 있는 가장 하단의 뷰를 찾아냄.
상단 - 기기쪽
하단 - 사용자쪽
앱이 받은 이벤트를 처리할 적절한 responder 객체에게 이벤트를 넘겨 처리하는데,
해당 이벤트를 처음으로 넘겨받는 객체를 FirstResponder 라고 합니다.
'iOS' 카테고리의 다른 글
[Swift] Protocol(프로토콜) - protocol extension(프로토콜 확장) (0) | 2022.08.12 |
---|---|
[Swift] Protocol - 타입 프로토콜, 위임 (0) | 2022.08.10 |
[Swift] ~= 연산자 (0) | 2022.07.13 |
[iOS] Unit Test (0) | 2022.07.10 |
[Swift] 익스텐션 (Extensions) (0) | 2022.07.01 |
- Total
- Today
- Yesterday
- Class
- swift 고차함수
- Swift 프로그래머스
- Swift Leetcode
- Swift
- CS 네트워크
- Swift ModernRIBs
- swift (programmers)
- RTCCameraVideoCapturer
- Swift 알고리즘
- 원티드 프리온보딩
- swift programmers
- Swift inout
- Swift final
- swift protocol
- swift reduce
- removeLast()
- Swift init
- Swift 프로퍼티
- Swift 내림차순
- Swift joined
- Swift Error Handling
- RIBs tutorial
- swift property
- ios
- 2023년 회고
- Combine: Asynchronous Programming with Swift
- iOS error
- Swift RIBs
- Swift joined()
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |