iOS 響應者鏈

響應者鏈

  • 響應者鏈是一個響應者的連接序列,事件或者動作消息依次傳遞,它允許響應者把事件處理的職責轉(zhuǎn)交給其他更高層次的對象。應用程序通過向上傳遞一個事件來查找合適的處理對象,因為點擊監(jiān)測視圖也是一個響應者對象,應用程序在處理觸摸事件的時候,也可以利用響應者鏈。
  • 由多個響應者組成的鏈

響應者

  • iOS中所有能響應事件(觸摸,晃動,遠程事件)的對象都是響應者。
  • 系統(tǒng)定義了一個抽象的父類UIResponder來表示響應者,其子類都是響應者。

響應者的檢測事件

  • 硬件檢測到觸摸事件,會將信息交給UIApplication,開始檢測。
  • UIApplication -> window -> viewController -> view -> 檢測所有子類。
  • 最終確認觸碰的位置,完成響應者鏈的查詢過程。

處理觸摸事件

  • 檢測到響應者后,實現(xiàn)touchesBegain:withEvent;等方法,即處理事件。
  • 如果響應者沒有處理事件,事件會向下傳遞。如果沒有響應者處理,則丟棄觸摸事件。
  • 事件處理的順序與觸摸檢測查詢檢測的順序相反。
  • 觸摸的子視圖 -> view -> viewController -> window -> UIApplication。

阻斷響應者鏈

  • 響應者鏈可以被打斷,無法完成檢測查詢的過程。
  • 視圖類的屬,userInteractionEnabled,關閉后能阻斷查詢過程。
最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • 一、響應者鏈(Responder Chain) 先來說說響應者對象(Responder Object),顧名思義,...
    像小強一樣活著閱讀 6,948評論 8 76
  • iOS 響應者鏈 字數(shù)418 閱讀41 評論0 喜歡3 響應者鏈 響應者鏈是一個響應者的連接序列,事件或者動作消息...
    無名小卒赫閱讀 446評論 1 3
  • 1、響應鏈的傳遞 Responder一點也不神秘————iOS用戶響應者鏈完全剖析(建議全看)看完上面一篇應該能完...
    RasonWu閱讀 10,505評論 3 36
  • 一篇搞定事件傳遞、響應者鏈條、hitTest和pointInside的使用發(fā)生觸摸事件后,系統(tǒng)會將該事件加入到一個...
    克魯?shù)吕?/span>閱讀 1,193評論 0 1
  • 響應者鏈顧名思義就是由一系列能夠響應事件的響應者對象組成的一個層式結(jié)構。我們把具有響應和處理事件能力的對象稱為響應...
    Nicole__Zhang閱讀 480評論 0 2

友情鏈接更多精彩內(nèi)容