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 ...