ios 知識點總結(七)

#UIResponse之事件響應鏈及其事件傳遞

  • 響應鏈:響應連是由一系列鏈接在一起的響應者組成的,一條響應鏈開始於第一響應者,結束於application對象,如果一個響應者不能處理事件,則會將事件沿着響應鏈傳遞到下一個響應者
  • 響應鏈是隨着我們視圖的搭建而創建的。以樹狀的層次結構。這裏寫圖片描述

當用戶觸發某一事件(觸摸事件或運動事件)後,UIKit會創建一個事件對象(UIEvent),該對象包含一些處理事件所需要的信息。然後事件對象被放到一個事件隊列中。這些事件按照先進先出的順序來處理。當處理事件時,程序的UIApplication對象會從隊列頭部取出一個事件對象,將其分發出去。通常首先是將事件分發給程序的主window對象,對於觸摸事件來講,window對象會首先嚐試將事件分發給觸摸事件發生的那個視圖上。這一視圖通常被稱爲hit-test視圖,而查找這一視圖的過程就叫做hit-testing。

  • 事件鏈

是由最底層網上一級級傳遞的:
UIApplication->UIWindow->rootView->對應的View;

  • 響應鏈

響應鏈和事件鏈的過程恰好相反;
如果當前的View發現事件是在自己的範圍內的話,那麼該事件就不再向下傳遞了,如果改時間不在自己的範圍內,那麼改時間會沿着響應鏈傳遞給父類,直到找到可以相應該事件的對象或者直到找不到響應該事件的對象。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章