UITouch事件處理過程詳解

2021-07-16 06:00:23 字數 1242 閱讀 2912

3) uiresponder 內部提供了方法,處理不同型別的事件

2.處理事件的方法:

處理觸控事件:

1) -(void)touchesbegan: withevent:

2) -(void)touchesmoved: withevent:

3) -(void)touchesended: withevent:

4) -(void)touchescancelled: withevent:

處理加速計事件:

1) -(void)motionbegan: withevent:

2) -(void)motionended: withevent:

3) -(void)motioncancelled: withevent:

遠端控制事件:

-(void)remotecontrolreceivedwithevent:

其中,在尋找處理事件的最合適控制項的準則:

1) 判斷自己是否能接受觸控事件,如果可以,則繼續

2) 判斷觸控點是否在自己身上,如果在,則繼續

3) 從後往前遍歷子控制項,重複上面的兩個步驟

4) 如果沒有符合條件的子控制項,那麼自己最適合處理

5) 返回找到的最合適處理事件的控制項

hittest: 方法**演示:

- (uiview *)hittest:(cgpoint)point withevent:(uievent *)event

// 如果這個點不在當前控制項中那麼返回 nil

if (![self pointinside:point withevent:event])

// 從後向前遍歷每乙個子控制項

for (int i = (int)self

.subviews

.count - 1; i >= 0; i--)

}// 如果以上都沒有執行 return, 那麼返回自己(表示子控制項中沒有"更合適"的了)

return

self;

}

在 上面的方法中,是通過內部呼叫 - (bool)pointinside:(cgpoint)point withevent:(uievent *)event 方法來判斷點是否在自己身上的

4.觸控事件的響應

在找到最合適處理觸控事件的控制項後,呼叫控制項的 touches方法來作具體的事件處理,後面就是事件響應的傳遞,具體傳遞過程可以參考 點我檢視 中的事件處理原則部分內容.

nginx事件處理過程

1.首先設定斷點 ngx epoll process events at src event modules ngx epoll module.c 575 2.請求http ip 3.nginx接收的客戶端的請求,進行accept事件處理,呼叫堆疊如下圖。4.accept處理完畢後,進行http的請...

UI 事件處理UITouch

一 事件的基本概念 uievent 事件,是由硬體捕捉的 個表 使用者操作裝置的物件。分三類 觸控事件 晃動事件 遠端控制事件 觸控事件 戶通過觸控裝置螢幕操作物件 輸 資料。持多點觸控,包含1個到多個觸控點 二 觸控的基本概念 1 實現觸控 uiview 持觸控事件 因為繼承於uiresponde...

UI 事件處理UITouch

在uiresponder父類中封裝著4個事件處理方法 1 void touchesbegan nsset touches withevent uievent event 2 void touchesmoved nsset touches withevent uievent event 3 void ...