響應(yīng)者鏈
- 響應(yīng)者鏈?zhǔn)且粋€響應(yīng)者的連接序列唠粥,事件或者動作消息依次傳遞义郑,它允許響應(yīng)者把事件處理的職責(zé)轉(zhuǎn)交給其他更高層次的對象。應(yīng)用程序通過向上傳遞一個事件來查找合適的處理對象,因為點擊監(jiān)測視圖也是一個響應(yīng)者對象嘉熊,應(yīng)用程序在處理觸摸事件的時候,也可以利用響應(yīng)者鏈扬舒。
- 由多個響應(yīng)者組成的鏈
響應(yīng)者
- iOS中所有能響應(yīng)事件(觸摸阐肤,晃動,遠(yuǎn)程事件)的對象都是響應(yīng)者讲坎。
- 系統(tǒng)定義了一個抽象的父類UIResponder來表示響應(yīng)者孕惜,其子類都是響應(yīng)者。
響應(yīng)者的檢測事件
- 硬件檢測到觸摸事件晨炕,會將信息交給UIApplication衫画,開始檢測。
- UIApplication -> window -> viewController -> view -> 檢測所有子類瓮栗。
- 最終確認(rèn)觸碰的位置削罩,完成響應(yīng)者鏈的查詢過程。
處理觸摸事件
- 檢測到響應(yīng)者后费奸,實現(xiàn)touchesBegain:withEvent弥激;等方法,即處理事件愿阐。
- 如果響應(yīng)者沒有處理事件微服,事件會向下傳遞。如果沒有響應(yīng)者處理换况,則丟棄觸摸事件职辨。
- 事件處理的順序與觸摸檢測查詢檢測的順序相反。
- 觸摸的子視圖 -> view -> viewController -> window -> UIApplication戈二。
阻斷響應(yīng)者鏈
- 響應(yīng)者鏈可以被打斷舒裤,無法完成檢測查詢的過程。
- 視圖類的屬觉吭,userInteractionEnabled腾供,關(guān)閉后能阻斷查詢過程。