自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

iOS的touchEvent的消費過程

移動開發(fā) iOS
本文重點介紹了touch events用戶觸摸屏幕時觸發(fā)事件的消費過程。內(nèi)容比較少,但實踐起來需要多多練習房能找到要領。

在iOS系統(tǒng)中,一共有三種類型的Event, 分別是touch events, motion events和remote-control events。touch events是用戶觸摸屏幕時觸發(fā)的事件,motion events是用戶移動設備時觸發(fā)的事件,remote-control events是用戶通過配件觸發(fā)的事件(如耳機等線控或鎖頻時線控等)。我們用的最多,交互最多的當然就是touch events了。

閱讀開發(fā)文檔Event Handling Guide for iOS這一章,知道產(chǎn)生touches時,系統(tǒng)會將一系列的touches打包到UIEvent里,該UIEvent存儲在當前應用event queue里,然后dispatch queue里面的事件給當前的key window, window通過hitTest: withEvent方法找到能夠接受該event的view。在最頂層次的View里調(diào)用hitTest: withEvent,然后該方法再調(diào)用自身的pointInside: withEvent方法來判斷需不需要處理,如果pointInside: withEvent返回YES,則hitTest: withEvent遍歷所有subview,返回能夠消費這個event的view,否則的話自身處理。如果pointInside: withEvent返回NO,則沿著responder chain向super view或者view controller傳遞event。如果view能夠消費touch event,則系統(tǒng)會向該responder 發(fā)送touchesBegan: touchesMoved: touchesCancelled: touchesEnded:等消息,然后來處理產(chǎn)生的touch events。touch的生命周期是跟它的hitTestView綁定的,就是從hitTestView接受該touch開始直到該touch消失都跟該hitTestView綁定。

所以我們需要自行處理touch event時,需要實現(xiàn)touchesBegan: touchesMoved: touchesCancelled: touchesEnded:等方法,如果不需要自行處理,或者是同時保留系統(tǒng)處理,則我們只需調(diào)用如上方法的系統(tǒng)實現(xiàn)即super里面的方法即可。我們需 要攔截touch event時,在pointInside: withEvent里面返回YES,但不做處理可達到攔截的效果。需要注意的是,我們永遠都不應該retain UIEvent,UIEvent是存儲在event queue里面的,會循環(huán)利用,如果非得暫存某些狀態(tài),請將UIEvent的proterties拷貝然后使用NSDictionary等存儲。

責任編輯:閆佳明 來源: cnblogs
相關推薦

2017-04-11 08:36:09

iOS編譯應用

2013-05-14 11:04:58

AIR AndroidTouchEvent類

2013-05-14 11:01:34

AIR AndroidTouchEvent類

2022-06-01 06:17:42

微服務Kafka

2012-10-30 09:31:18

2010-07-15 12:38:14

SQL Server存

2016-08-03 15:47:20

AndroidIOSApple

2011-03-22 10:10:21

Nagios配置

2010-07-27 16:14:50

2022-05-09 11:15:05

RocketMQPULL 模式PUSH 模式

2015-11-03 08:12:44

2013-04-03 10:42:46

iOS開發(fā)調(diào)試運行代碼

2022-08-09 08:18:19

RocketMQpush消費

2010-04-08 18:10:37

Oracle存儲過程

2023-11-07 07:21:04

2010-04-07 14:01:40

Oracle存儲過程

2020-06-08 13:36:17

戴爾

2021-12-27 08:22:18

Kafka消費模型

2023-12-25 19:28:59

RocketMQ大數(shù)據(jù)

2023-11-07 12:09:44

TopicKafka
點贊
收藏

51CTO技術棧公眾號