[Apple] UIEvent

J.Noma·2021년 12월 29일
0

iOS : 이벤트 처리

목록 보기
5/8

Apple문서: UIEvent


Overview

event의 종류
App은 다양한 종류의 event를 받을 수 있습니다(터치, 모션, remote-control, press). 그 중 터치 event는 가장 일반적인 것으로 터치가 발생한 곳에 있는 view에게 event가 전달됩니다. 모션 event는 UIKit으로부터 트리거되고 Core Motion Framwork에 의해 전달되는 모션 event와는 별개의 것입니다. Remote-control event는 외부 악세사리나 헤드셋으로부터 responder가 명령을 받을 수 있게 합니다. press event는 게임컨트롤러, AppleTV remote, 다른 물리적 버튼들과 상호작용하는 것을 말합니다. 어떤 UIEvent 객체의 타입은 type/subtype 프로퍼티를 통해 알 수 있습니다

UIEvent는 하나 이상의 UITouch를 가질 수 있다
터치 event 객체는 하나 이상의 UITouch 객체를 포함할 것입니다. 터치 event가 발생할 때, 시스템은 이 event를 적절한 responder에게 보내고 touchesBegan()같은 관련 메서드를 호출합니다. 그 후 responder는 적절한 action을 결정하기 위해 터치 객체들을 사용합니다

UIEvent는 재사용되므로, 보관이 필요한 data는 외부로 백업해야 한다
multi-touch의 경우, UIKit은 업데이트된 터치 정보를 보낼 때 동일한 UIEvent 객체를 재사용합니다. 그러므로 우리는 UIEvent 객체 혹은 그 하위 객체를 붙잡고 있으면(retain) 안됩니다. 만약 responder 메서드에서 처리한 data를 밖에서 유지하는게 필요한 경우, UITouch/UIEvent에 있는 data를 local data structure로 복사합니다

profile
노션으로 이사갑니다 https://tungsten-run-778.notion.site/Study-Archive-98e51c3793684d428070695d5722d1fe

0개의 댓글