iOS 事件分發(fā)

事件分發(fā)

事件分發(fā)過程包含兩方面:

  1. 點擊事件的傳遞過程,主要是通過Hit-TestView查找當(dāng)前被點擊的點屬于哪一個View晾浴。
  2. 響應(yīng)鏈,事件的響應(yīng)過程,主要是某個View如何響應(yīng)點擊事件溶握。

點擊事件傳遞

當(dāng)點擊屏幕時,通過hit-testing找到觸摸點所在的view蒸播,查找過程如下:

  • 從window開始一層一層往下遍歷所有的子View;
  • 如果某個View的userInteractionEnabled = NO, enabled = NO, 或alpha <= 0.01, hidden = YES 等情況睡榆,則說明該View不是響應(yīng)View, 直接返回nil, 不再在此View及其subView中查找。
  • 如果觸摸點不再View中袍榆,直接返回nil, 不再在此View及其subView中查找胀屿。
  • 如果觸摸點在View中,則繼續(xù)遍歷它的子View, 直到找到被點擊的View包雀。

總結(jié)下點擊事件的傳遞宿崭,從window開始查找,一層一層的遍歷其subview才写,找到被點擊的點在哪個View葡兑。 從大View到小View查找。

事件響應(yīng)鏈

通過hit-testing找到響應(yīng)的view之后赞草,點擊事件就交給它來處理讹堤,此時hit-testView就是firstResponder,如果它無法響應(yīng)事件房资,則把事件交給它的父View蜕劝,直到有事件的響應(yīng)者或傳遞到appDelegate結(jié)束為止。
這一系列的響應(yīng)者和事件的傳遞方向就是響應(yīng)鏈轰异,在響應(yīng)鏈中岖沛,所有響應(yīng)者的基類都是UIResponder, 也就是說所有可以響應(yīng)事件的類都是UIResponder的子類。

總結(jié)下事件響應(yīng):從子View開始響應(yīng)事件搭独,如果不能響應(yīng)婴削,則往上看父View是否能響應(yīng),如果能響應(yīng)則響應(yīng)牙肝,如果不能則繼續(xù)往上查找直到appDelegate結(jié)束唉俗。從小View到大View查找嗤朴。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市虫溜,隨后出現(xiàn)的幾起案子雹姊,更是在濱河造成了極大的恐慌,老刑警劉巖衡楞,帶你破解...
    沈念sama閱讀 212,383評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件吱雏,死亡現(xiàn)場離奇詭異,居然都是意外死亡瘾境,警方通過查閱死者的電腦和手機(jī)歧杏,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,522評論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來迷守,“玉大人犬绒,你說我怎么就攤上這事《以洌” “怎么了凯力?”我有些...
    開封第一講書人閱讀 157,852評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長急膀。 經(jīng)常有香客問我沮协,道長,這世上最難降的妖魔是什么卓嫂? 我笑而不...
    開封第一講書人閱讀 56,621評論 1 284
  • 正文 為了忘掉前任慷暂,我火速辦了婚禮,結(jié)果婚禮上晨雳,老公的妹妹穿的比我還像新娘行瑞。我一直安慰自己,他們只是感情好餐禁,可當(dāng)我...
    茶點故事閱讀 65,741評論 6 386
  • 文/花漫 我一把揭開白布血久。 她就那樣靜靜地躺著,像睡著了一般帮非。 火紅的嫁衣襯著肌膚如雪氧吐。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,929評論 1 290
  • 那天末盔,我揣著相機(jī)與錄音筑舅,去河邊找鬼。 笑死陨舱,一個胖子當(dāng)著我的面吹牛翠拣,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播游盲,決...
    沈念sama閱讀 39,076評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼误墓,長吁一口氣:“原來是場噩夢啊……” “哼蛮粮!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起谜慌,我...
    開封第一講書人閱讀 37,803評論 0 268
  • 序言:老撾萬榮一對情侶失蹤然想,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后畦娄,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體又沾,經(jīng)...
    沈念sama閱讀 44,265評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡弊仪,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,582評論 2 327
  • 正文 我和宋清朗相戀三年熙卡,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片励饵。...
    茶點故事閱讀 38,716評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡驳癌,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出役听,到底是詐尸還是另有隱情颓鲜,我是刑警寧澤,帶...
    沈念sama閱讀 34,395評論 4 333
  • 正文 年R本政府宣布典予,位于F島的核電站甜滨,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏瘤袖。R本人自食惡果不足惜衣摩,卻給世界環(huán)境...
    茶點故事閱讀 40,039評論 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望捂敌。 院中可真熱鬧艾扮,春花似錦、人聲如沸占婉。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,798評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽逆济。三九已至酌予,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間奖慌,已是汗流浹背抛虫。 一陣腳步聲響...
    開封第一講書人閱讀 32,027評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留升薯,地道東北人莱褒。 一個月前我還...
    沈念sama閱讀 46,488評論 2 361
  • 正文 我出身青樓,卻偏偏與公主長得像涎劈,于是被迫代替她去往敵國和親广凸。 傳聞我的和親對象是個殘疾皇子阅茶,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,612評論 2 350

推薦閱讀更多精彩內(nèi)容

  • 這里就解析一個事情:iOS是如何找到處理觸摸事件的視圖 關(guān)鍵詞: ** Hit-Test View:The low...
    南華coder閱讀 998評論 0 8
  • iOS事件的傳遞與響應(yīng)是一個重要的話題,網(wǎng)上談?wù)摰暮芏嗔潞#蠖嘀v述并不完整脸哀,本文將結(jié)合蘋果官方的文檔對事件的傳遞與...
    還是不夠辣閱讀 4,527評論 4 31
  • 當(dāng)你手指觸摸屏幕后會發(fā)生以下事情:觸摸事件被封裝成一個UIEvent事件,去當(dāng)前iOS操作系統(tǒng)的active...
    傲世情緣閱讀 998評論 0 4
  • 在iOS開發(fā)中經(jīng)常會涉及到觸摸事件扭吁。本想自己總結(jié)一下撞蜂,但是遇到了這篇文章,感覺總結(jié)的已經(jīng)很到位侥袜,特此轉(zhuǎn)載蝌诡。作者:L...
    WQ_UESTC閱讀 5,995評論 4 26
  • 好奇觸摸事件是如何從屏幕轉(zhuǎn)移到APP內(nèi)的?困惑于Cell怎么突然不能點擊了枫吧?糾結(jié)于如何實現(xiàn)這個奇葩響應(yīng)需求浦旱?亦或是...
    Lotheve閱讀 56,855評論 51 598