비디오: Amazin Marvin | Review | Features, Pricing & Opinion ✅ 2024
iOS 앱으로 보내지는 대부분의 이벤트는 UIEvent 클래스의 인스턴스 인 이벤트 객체에 캡슐화됩니다. 터치 관련 이벤트의 경우 이벤트 객체에는 화면을 터치하는 손가락을 나타내는 하나 이상의 터치 객체 (UITouch)가 포함됩니다.
사용자가 손가락을 화면에 놓고 손가락을 움직이고 화면에서 손가락을 제거하면 시스템은 각 손가락의 변경 사항을 해당 터치 객체에보고합니다.
이벤트 배포 및 처리는 UIResponder 클래스의 인스턴스 인 응답 객체의 작업입니다. UIApplication, UIViewController, UIWindow 및 UIView 클래스 (및 자체 AppDelegate)는 모두 UIResponder에서 상속받습니다. 이벤트 대기열에서 이벤트를 가져온 후 앱은 해당 이벤트를 발생시킨 UIWindow 객체에 전달합니다.
윈도우 객체는 차례로 터치 이벤트가 아닌 다른 이벤트의 첫 수신자로 지정된 첫 번째 응답자에게 이벤트를 전달합니다. 터치 이벤트의 경우 첫 번째 응답자는 일반적으로 터치가 발생한 뷰 객체 (UIView)입니다. 예를 들어, 버튼에서 발생하는 터치 이벤트는 해당 버튼 객체로 전달됩니다.
일련의 연결된 응답 객체는응답 체인으로 알려져 있습니다. 메시지는 처리기가 처리되거나 폐기 될 때까지 응답기 체인 위로 계속 이동합니다. 예를 들어 창, 응용 프로그램 및 응용 프로그램의 대리인과 같은 상위 수준의 응답자 개체로 향합니다.
터치 이벤트 객체가 사용자의 탭에 응답하여 생성됩니다. 손가락을 만지면 터치 이벤트가 앱의 이벤트 대기열에 추가됩니다. 터치 이벤트는 캡슐화 된
-
캡슐화 된 상태로, 즉 UIEvent 객체에 배치됩니다. UITouch 개체가 화면을 터치하는 각 손가락에 대해 존재하므로 개별 터치를 추적 할 수 있습니다. 사용자가 손가락으로 화면을 조작하면 시스템은 각 손가락의 변경 사항을 해당 UITouch 개체에보고합니다.
실행 루프 모니터가 이벤트를 전달합니다. 무언가를 처리해야 할 필요가있을 때 UIApplication의 이벤트 처리 코드는 이벤트를 적절한 응답자
-
객체로 전달하여 이벤트를 처리합니다. 특정 유형의 이벤트가 발생할 때 (예: 사용자가 화면을 터치 할 때)
Responder 객체는 UIApplication, UIWindow 및 UIView (및 해당 하위 클래스)의 인스턴스뿐만 아니라 UIViewConroller (및 해당 하위 클래스) 중 하나를 포함 할 수 있습니다. 이 모든 클래스는 UIResponder를 상속합니다.
응답 객체는 이벤트 처리 방법을 결정합니다. 예를 들어, 뷰 내의 버튼으로 발생하는 터치 이벤트는 버튼 객체로 전달된다. 단추 개체는 다른 개체 (이 경우 UIViewController 개체)에 작업 메시지를 보내 이벤트를 처리합니다. 이를 통해 내부 버튼을 사용하지 않고도 표준 버튼 객체를 사용할 수 있습니다. 버튼에서 타겟에서 호출 할 메소드를 지정하면됩니다. 메시지를 처리하면 사용자 인터페이스에서보기, 새로운보기 또는 다른 종류의 변경 사항이 변경 될 수 있습니다. 이러한 결과 중 하나가 발생하면보기 및 그래픽 인프라가 인계 받아 필요한 드로잉 이벤트를 처리합니다. 앱이 실행 루프로 돌아갑니다.
-
이벤트가 처리되거나 무시되면 앱 제어가 실행 루프로 돌아갑니다. 그런 다음 실행 루프는 다음 이벤트를 처리하거나 더 이상 수행 할 필요가없는 경우 스레드를 절전 모드로 전환합니다.
하지만 앱이 기기에서 단독으로 작동하지 않기 때문에 SMS 메시지 나 사용자가 홈 버튼을 터치하여 중단 될 수 있습니다. 앱이 중단되면 제어가 다른 앱으로 변경되기 전에 몇 가지 사항을 처리해야합니다.