iOS事件傳遞和事件響應

UIApplication運行著一個runloop在接受觸摸事件,當接收到觸摸后將事件交給keywindow去處理,然后通過一系列的事件傳遞找到合適的view。
hitTest方法的內部流程
1,判斷自己能否接收事件。
2,判斷下點在不在當前視圖 pointInside: withEvent: ,如果在,繼續(xù)下一步。
3,從后往前遍歷自己的子控件。
4,如果沒有比自己合適的子控件,那么這個最合適的View就是自己返回self。

然后會調用touchesBegan方法,向上傳遞給 響應者,這就是響應者鏈條

響應者鏈條

響應者鏈條:由多個響應者一起形成的鏈條
作用:能清楚的看到每個響應者的聯系,同時可以讓一個事件多個對象處理。
響應者對象:能處理事件的對象。

如何判斷上一個響應者:
如果view是控制器view,那么控制器就是上一個響應者,否則父控件就是上一個響應者,如果一直找不到響應者會最終會到AppDelegate,如果AppDelegate內沒有實現該事件方法,將會崩潰。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容