Responder ChainとFirst Responder
イベントを受信および処理するUI Responder
私たちがアプリケーションを作成するとき、よく接するUIVEをよく見ると、UIresponderというオブジェクトを継承していることがわかります.
UIresponderの友人は名前から分かるように,アクティビティを受け取ったら処理しなければならず,自分で処理できない場合は他のUIresponder処理に渡す.
上図に示すように、ユーザインタフェース応答プログラムを継承するオブジェクトは、ユーザインタフェースビューの他に、ユーザインタフェースコントローラ、ユーザインタフェースアプリケーションなどがあるので、複数のイベントを受信して処理する機能を実現することができる.
同様に、Responderがイベントを受信して処理する前に、最初にイベントを受信するオブジェクトしか存在しない.First Responderとは、イベントを直接受信する最初のResponderオブジェクトを指す.
では、Responder Chainとは何でしょうか.アクティビティを最初に受信したオブジェクトが処理するオブジェクトでない場合、Responderは何をしますか?前述したように、イベントは次のResponderオブジェクトに渡され、Responder Chainと呼ばれる適切なオブジェクトが受信されるまで繰り返される.
First Responderの決定
가속도 센서, 자이로 센서, 자기장 센서 등에서 발생하는
이벤트의 경우에는 Responder Chain을 따르지 않고
지정된 객체로 바로 전달되며, 이를 처리하기 위해서는
Core Motion Framework를 사용해야 하니 주의!!
hitTestによるイベントの確認
UImitベースの場合、ビューはヒットテストを行い、イベントが発生した場所を決定します.UIViewのhitTest(with)関数は、ビュー階層を参照すると、関連するイベントを持つ最も深いビューを検索して返します.
(見つかったビューはイベントのFrest Responderになります)
Responder Chainの変更
next propertyを上書きすることで、次のResponderオブジェクトを変更し、Responder Chainを変更できます.
他にも様々な水晶元素があるので、これらの部分はよく理解してください.
Reference
この問題について(Responder ChainとFirst Responder), 我々は、より多くの情報をここで見つけました https://velog.io/@wnsxor1993/Responder-Chain과-First-Responderテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol