響應者鏈的事件傳遞過程

2021-06-27 09:26:08 字數 1301 閱讀 2900

響應者鏈的事件傳遞過程一、

hittext方法

1、hittext方法在

乙個事件傳遞給乙個控制項的時候,控制項就會呼叫這個方法

2、hittext

作用: 

尋找到最合適的

view

。3、hittext方法

1)、判斷視窗能不能處理事件

? 如果不能,意味著視窗不是最合適的

view

,而且也不會去尋找比自己更合適的

view,

直接返回

nil,

通知,沒有最合適的

view

。2)、

判斷觸控點在不在視窗。

3)、遍歷自己的子控制項,尋找有沒有比自己更合適的

view。

4)、如果子控制項不接收事件,意味著子控制項沒有找到最合適的

view,

然後返回

nil,

告訴視窗沒有找到更合適的

view,

視窗就知道沒有比自己更合適的

view,

就自己處理事件。

//找最合適的

view

// point

是白色view

的座標系上的點

- (uiview

*)hittest:(

cgpoint

)point withevent:(

uievent

*)event}//

沒有找到比自己更合適的

view

return

self;}

/***  

判斷點在不在方法呼叫者的座標系上

*  point:

是方法呼叫者的座標系上的點

*/- (

bool

)pointinside:(

cgpoint

)point withevent:(

uievent

*)event

注意:1、touch

2、上乙個響應者預設是父控制項。

二、響應者鏈的事件傳遞過程: 1.

如果view

的控制器存在,就傳遞給控制器;如果控制器不存在,則將其傳遞給它的父檢視。

2.在檢視層次結構的最頂級檢視,如果也不能處理收到的事件或訊息,則其將事件或訊息傳遞給

window

物件進行處理

3.如果

window

物件也不處理,則其將事件或訊息傳遞給

物件4.

如果也不能處理該事件或訊息,則將其丟棄。

iOS事件傳遞 響應者鏈

事件傳遞 響應者鏈 對於觸控事件來說,window 會傳到 發生觸控的view,被稱之為hit test view。此過程叫 hit testing。對於手勢和遠端控制,這個第一響應被發到 first responder.最終響應者鏈要找到處理事件的物件。規則如下。1 hit testing 檢測的...

iOS 響應者鏈,事件的傳遞

先將事件物件由上往下傳遞 由父控制項傳遞給子控制項 找到最合適的控制項來處理這個事件。呼叫最合適控制項的touches 方法 如果呼叫了 super touches 就會將事件順著響應者鏈條往上傳遞,傳遞給上乙個響應者 接著就會呼叫上乙個響應者的touches 方法 如果當前這個view是控制器的v...

iOS 響應者鏈,事件的傳遞

觸控事件 對於觸控事件,window物件會嘗試著首先將事件傳遞給觸控事件發生點得view。這個view被視為 命中測試view hit test view 尋找 命中測試view 的過程被稱作 命中測試 關於 命中測試 會在下面的命中測試返回觸控事件發生點的view有詳情描述。手勢和遠端控制事件 對...