28-說(shuō)說(shuō)響應(yīng)鏈-IOS

事件響應(yīng)鏈科阎。包括點(diǎn)擊事件,畫(huà)面刷新事件等钟病。在視圖棧內(nèi)從上至下萧恕,或者從下之上傳播。

可以說(shuō)點(diǎn)事件的分發(fā)肠阱,傳遞以及處理票唆。具體可以去看下touch事件這塊。因?yàn)閱?wèn)的太抽象化了

嚴(yán)重懷疑題目出到越后面就越籠統(tǒng)屹徘。

責(zé)任鏈模式走趋,來(lái)講通過(guò)事件響應(yīng)鏈處理,其擁有的擴(kuò)展性

首先要明確的是:在IOS中噪伊,有響應(yīng)者鏈對(duì)事件進(jìn)行響應(yīng)簿煌,所有的響應(yīng)類(lèi)都是UIResponder的子類(lèi),響應(yīng)者鏈?zhǔn)且粋€(gè)由不同對(duì)象組成的層次結(jié)構(gòu)鉴吹,其中的每個(gè)對(duì)象將依次獲得響應(yīng)事件消息的機(jī)會(huì)姨伟。

響應(yīng)鏈的過(guò)程:當(dāng)事件發(fā)生的時(shí)候,響應(yīng)鏈?zhǔn)紫缺话l(fā)送給第一個(gè)響應(yīng)者(往往是事件發(fā)生的視圖豆励,也就是用戶(hù)觸摸屏幕的地方)夺荒。事件將沿著響應(yīng)者鏈一直向下傳遞瞒渠,知道被接受并作出處理。一般來(lái)說(shuō)技扼,第一響應(yīng)這是個(gè)視圖對(duì)象或者其子類(lèi)伍玖,當(dāng)其被觸摸后事件就交由它處理,如果他不處理剿吻,時(shí)間就會(huì)被傳遞給視圖控制器對(duì)象UIViewController(如果存在)渣蜗,然后是它的俯視圖對(duì)象(superview)拷窜,以此類(lèi)推知道頂層視圖摆霉。接下來(lái)會(huì)沿著頂層視圖(top view)到窗口(UIwindow 對(duì)象) 再到程序的(UIApplication對(duì)象)懒浮,如果整個(gè)過(guò)程都沒(méi)有響應(yīng)這個(gè)事件,則該事件被丟棄榄笙,一般情況下晰搀,在響應(yīng)鏈中只要有對(duì)象處理事件,事件就會(huì)被傳遞办斑。

典型的響應(yīng)路線(xiàn)圖如

First ?Responser --> The Window -->The Applicationn --> App Delegate

正常的響應(yīng)者鏈流程經(jīng)常被委托打斷,一個(gè)對(duì)象可能將響應(yīng)工作委托給另一個(gè)對(duì)象來(lái)完成(通常是視圖控制器viewcontroller)

當(dāng)用戶(hù)與iPhone的觸摸屏產(chǎn)生互動(dòng)時(shí)杆逗,硬件就會(huì)探測(cè)到物理接觸并且通知操作系統(tǒng)乡翅。

接著? 操作系統(tǒng)? 就會(huì)創(chuàng)建? 相應(yīng)的事件? 并且? 將? 其? 傳遞給? 當(dāng)前正在運(yùn)行的應(yīng)用程序的事件隊(duì)列。然后? 這項(xiàng)事件? 會(huì)被事件循環(huán)? 傳遞給? 優(yōu)先響應(yīng)者物件罪郊。優(yōu)先響應(yīng)者物件? 是? 事件? 被觸發(fā)時(shí)? 和? 用戶(hù)? 交互的物件蠕蚜,比如? 按鈕物件、視圖物件悔橄。如果? 我們? 編寫(xiě)了? 代碼? 讓? 優(yōu)先響應(yīng)者? 處理? 這種類(lèi)型的事件靶累,那么? 它? 就會(huì)處理? 這種類(lèi)型的事件。

處理完某項(xiàng)事件后癣疟,響應(yīng)者有兩個(gè)選項(xiàng):1挣柬、將? 其? 丟棄;2睛挚、將? 其? 傳遞給? 響應(yīng)鏈條中的下一個(gè)響應(yīng)者邪蛔。下一個(gè)響應(yīng)者的地址? 存儲(chǔ)? 在當(dāng)前響應(yīng)者物件所包含的變量nextResponder當(dāng)中。如果? 優(yōu)先響應(yīng)者? 無(wú)法處理? 一項(xiàng)事件扎狱,那么? 這項(xiàng)事件? 就傳遞給? 下一個(gè)響應(yīng)者侧到,直到? 這項(xiàng)事件? 到達(dá)? 能處理它的響應(yīng)者? 或者? 到達(dá)? 響應(yīng)鏈條的末端,也就是? UIApplication類(lèi)型的物件淤击。UIApplication類(lèi)型的物件? 收到? 一項(xiàng)事件后匠抗,也是? 要么? 處理,要么? 丟棄污抬」常“

比如 ?有 ?一個(gè)視圖物件,這個(gè)視圖物件上 ?有 ?一個(gè)按鈕物件。當(dāng)用戶(hù) ?觸摸 ?這個(gè)按鈕物件時(shí)著蛙,作為優(yōu)先響應(yīng)者删铃,這個(gè)按鈕物件 ?就會(huì)收到 ?一項(xiàng)事件。如果 ?這個(gè)按鈕物件 ?無(wú)法處理 ?這項(xiàng)事件踏堡,就會(huì)將 ?這項(xiàng)事件 ?傳遞給 ?視圖物件猎唁。如果 ?視圖物件 ?無(wú)法處理 ?這項(xiàng)事件,就會(huì)將 ?這項(xiàng)事件 ?傳遞給 ?視圖控制器物件顷蟆。以此類(lèi)推诫隅。

應(yīng)該注意的 ?是 ?當(dāng)我們 ?在使用 ?響應(yīng)鏈條時(shí),一項(xiàng)事件 ?并不會(huì)自動(dòng)地 ?從一個(gè)響應(yīng)者 ?傳遞到 ?下一個(gè)響應(yīng)者帐偎。如果 ?要將 ?一項(xiàng)事件 ?從一個(gè)響應(yīng)者 ?傳遞到 ?下一個(gè)響應(yīng)者逐纬,我們 ?必須編寫(xiě) ?代碼 ?才能辦到。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末削樊,一起剝皮案震驚了整個(gè)濱河市豁生,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌漫贞,老刑警劉巖甸箱,帶你破解...
    沈念sama閱讀 212,542評(píng)論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異迅脐,居然都是意外死亡芍殖,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,596評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門(mén)谴蔑,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)豌骏,“玉大人,你說(shuō)我怎么就攤上這事隐锭∏远悖” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 158,021評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵成榜,是天一觀的道長(zhǎng)框舔。 經(jīng)常有香客問(wèn)我,道長(zhǎng)赎婚,這世上最難降的妖魔是什么刘绣? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,682評(píng)論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮挣输,結(jié)果婚禮上纬凤,老公的妹妹穿的比我還像新娘。我一直安慰自己撩嚼,他們只是感情好停士,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,792評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布挖帘。 她就那樣靜靜地躺著,像睡著了一般恋技。 火紅的嫁衣襯著肌膚如雪拇舀。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,985評(píng)論 1 291
  • 那天蜻底,我揣著相機(jī)與錄音骄崩,去河邊找鬼。 笑死薄辅,一個(gè)胖子當(dāng)著我的面吹牛要拂,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播站楚,決...
    沈念sama閱讀 39,107評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼脱惰,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了窿春?” 一聲冷哼從身側(cè)響起拉一,我...
    開(kāi)封第一講書(shū)人閱讀 37,845評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎旧乞,沒(méi)想到半個(gè)月后舅踪,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,299評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡良蛮,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,612評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了悍赢。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片决瞳。...
    茶點(diǎn)故事閱讀 38,747評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖左权,靈堂內(nèi)的尸體忽然破棺而出皮胡,到底是詐尸還是另有隱情,我是刑警寧澤赏迟,帶...
    沈念sama閱讀 34,441評(píng)論 4 333
  • 正文 年R本政府宣布屡贺,位于F島的核電站,受9級(jí)特大地震影響锌杀,放射性物質(zhì)發(fā)生泄漏甩栈。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,072評(píng)論 3 317
  • 文/蒙蒙 一糕再、第九天 我趴在偏房一處隱蔽的房頂上張望量没。 院中可真熱鬧,春花似錦突想、人聲如沸殴蹄。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,828評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)袭灯。三九已至刺下,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間稽荧,已是汗流浹背橘茉。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,069評(píng)論 1 267
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留蛤克,地道東北人捺癞。 一個(gè)月前我還...
    沈念sama閱讀 46,545評(píng)論 2 362
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像构挤,于是被迫代替她去往敵國(guó)和親髓介。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,658評(píng)論 2 350

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

  • 好奇觸摸事件是如何從屏幕轉(zhuǎn)移到APP內(nèi)的筋现?困惑于Cell怎么突然不能點(diǎn)擊了唐础?糾結(jié)于如何實(shí)現(xiàn)這個(gè)奇葩響應(yīng)需求?亦或是...
    Lotheve閱讀 56,865評(píng)論 51 598
  • 用戶(hù)以多種方式操縱他們的iOS設(shè)備矾飞,例如觸摸屏幕或搖動(dòng)設(shè)備一膨。 iOS會(huì)解釋用戶(hù)何時(shí)以及如何操作硬件并將此信息傳遞到...
    坤坤同學(xué)閱讀 3,984評(píng)論 7 19
  • 在iOS開(kāi)發(fā)中經(jīng)常會(huì)涉及到觸摸事件。本想自己總結(jié)一下洒沦,但是遇到了這篇文章豹绪,感覺(jué)總結(jié)的已經(jīng)很到位,特此轉(zhuǎn)載申眼。作者:L...
    WQ_UESTC閱讀 5,996評(píng)論 4 26
  • 事件傳遞:響應(yīng)者鏈 當(dāng)你設(shè)計(jì)一個(gè)app的時(shí)候瞒津,你很可能需要你的app能夠動(dòng)態(tài)響應(yīng)某些事件。比如括尸,觸摸可以發(fā)生在屏幕...
    hjfrun閱讀 1,025評(píng)論 1 5
  • 概述 應(yīng)用程序使用響應(yīng)者對(duì)象來(lái)接收和處理事件濒翻,屬于UIResponder類(lèi)的實(shí)例對(duì)象都是響應(yīng)者屁柏,常見(jiàn)的子類(lèi)包括UI...
    漸z閱讀 2,643評(píng)論 0 3