-
事件的產生
- 當發(fā)生一個觸摸事件后,系統(tǒng)會將該事件加入到一個由UIApplication管理的事件隊列中.
- UIApplication會從事件隊列中取出最前面的事件,并將事件分發(fā)下去以便處理.
- 主窗口會在視圖層次結構中找到一個最合適的視圖來處理觸摸事件
-
事件的傳遞
- 觸摸事件的傳遞是從父控件傳遞到子控件的.
- 如果一個父控件不能接收事件,那么它里面的了子控件也不能夠接收事件.
- 一個控件什么情況下不能夠接收事件
- 不接收用戶交互時不能處理事件
- 當一個空間隱藏的時候不能接收事件
- 當一個控件為透明的時候不能接收事件
注意:
UIImageView的userInteractionEnabled默認就是NO,
因此UIImageView以及它的子控件默認是不能接收觸摸事件的
-
事件響應
用戶點擊屏幕后產生的一個觸摸事件托慨,經(jīng)過一系列的傳遞過程后,會找到最合適的視圖控件來處理這個事件,找到最合適的視圖控件后,就會調用控件的touches方法來作具體的事件處理那這些touches方法的默認做法是將事件順著響應者鏈條向上傳遞颅眶,將事件交給上一個響應者進行處理
-
響應者鏈條
是由多個響應者對象連接起來的鏈條
-
響應者對象
繼承了UIResponder對象我們稱之為響應者對象,也就是能處理事件的對象
-
時間傳遞的完整過程
- 在產生一個事件時,系統(tǒng)會將該事件加入到一個由UIApplication管理的事件隊列中
- UIApplication會從事件隊列中取出最前面的事件,將它傳遞給先發(fā)送事件給應用程序的主窗口
- 主窗口會調用hitTest方法尋找最適合的視圖控件,找到后就會調用視圖控件的touches方法來做具體的事情
- 當調用touches方法,它的默認做法, 就會將事件順著響應者鏈條往上傳遞乒融,傳遞給上一個響應者,接著就會調用上一個響應者的touches方法
-
尋找上一個響應者
- 如果當前的View是控制器的View,那么控制器就是上一個響應者
- 如果當前的View不是控制器的View,那么它的父控件就是上一個響應者
- 在視圖層次結構的最頂級視圖,如果也不能處理收到的事件或消息鼠证,則其將事件或消息傳遞給window對象進行處理
- 如果window對象也不處理,則其將事件或消息傳遞給UIApplication對象
- 如果UIApplication也不能處理該事件或消息靠抑,則將其丟棄
事件的產生與傳遞
最后編輯于 :
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
- 文/潘曉璐 我一進店門川队,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人睬澡,你說我怎么就攤上這事固额。” “怎么了煞聪?”我有些...
- 文/不壞的土叔 我叫張陵斗躏,是天一觀的道長。 經(jīng)常有香客問我米绕,道長瑟捣,這世上最難降的妖魔是什么? 我笑而不...
- 正文 為了忘掉前任栅干,我火速辦了婚禮迈套,結果婚禮上,老公的妹妹穿的比我還像新娘碱鳞。我一直安慰自己桑李,他們只是感情好,可當我...
- 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著贵白,像睡著了一般率拒。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上禁荒,一...
- 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼姐军!你這毒婦竟也來了铁材?” 一聲冷哼從身側響起,我...
- 正文 年R本政府宣布,位于F島的核電站屹逛,受9級特大地震影響础废,放射性物質發(fā)生泄漏。R本人自食惡果不足惜罕模,卻給世界環(huán)境...
- 文/蒙蒙 一评腺、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧淑掌,春花似錦蒿讥、人聲如沸。這莊子的主人今日做“春日...
- 文/蒼蘭香墨 我抬頭看了看天上的太陽媒殉。三九已至,卻和暖如春摔敛,著一層夾襖步出監(jiān)牢的瞬間廷蓉,已是汗流浹背。 一陣腳步聲響...
推薦閱讀更多精彩內容
- 本文來自:http://ios.jobbole.com/84081/ 前言: 按照時間順序扯饶,事件的生命周期是這樣的...
- 本文轉自文/VV木公子(簡書作者) 前言: 按照時間順序,事件的生命周期是這樣的:事件的產生和傳遞(事件如何從父控...
- 史上最詳細的iOS之事件的傳遞和響應機制-原理篇http://www.reibang.com/p/2e074db7...
- 前言: 按照時間順序池颈,事件的生命周期是這樣的:事件的產生和傳遞(事件如何從父控件傳遞到子控件并尋找到最合適的vie...