iOS中對(duì)于響應(yīng)鏈的理解

對(duì)于響應(yīng)鏈的理解:

在IOS中,有響應(yīng)者鏈對(duì)事件進(jìn)行響應(yīng),所有的響應(yīng)類都是UIResponder的子類,響應(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ā)生的視圖,也就是用戶觸摸屏幕的地方)。事件將沿著響應(yīng)者鏈一直向下傳遞,知道被接受并作出處理。一般來(lái)說(shuō),第一響應(yīng)這是個(gè)視圖對(duì)象或者其子類,當(dāng)其被觸摸后事件就交由它處理,如果他不處理,時(shí)間就會(huì)被傳遞給視圖控制器對(duì)象UIViewController(如果存在),然后是它的俯視圖對(duì)象(superview),以此類推知道頂層視圖。接下來(lái)會(huì)沿著頂層視圖(top view)到窗口(UIwindow 對(duì)象) 再到程序的(UIApplication對(duì)象),如果整個(gè)過(guò)程都沒(méi)有響應(yīng)這個(gè)事件,則該事件被丟棄,一般情況下,在響應(yīng)鏈中只要有對(duì)象處理事件,事件就會(huì)被傳遞。
典型的響應(yīng)路線圖如:
First Responser --> The Window -->The Applicationn --> App Delegate
正常的響應(yīng)者鏈流程經(jīng)常被委托打斷,一個(gè)對(duì)象可能將響應(yīng)工作委托給另一個(gè)對(duì)象來(lái)完成(通常是視圖控制器viewcontroller)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

  • 好奇觸摸事件是如何從屏幕轉(zhuǎn)移到APP內(nèi)的?困惑于Cell怎么突然不能點(diǎn)擊了?糾結(jié)于如何實(shí)現(xiàn)這個(gè)奇葩響應(yīng)需求?亦或是...
    Lotheve閱讀 57,883評(píng)論 51 603
  • 用戶以多種方式操縱他們的iOS設(shè)備,例如觸摸屏幕或搖動(dòng)設(shè)備。 iOS會(huì)解釋用戶何時(shí)以及如何操作硬件并將此信息傳遞到...
    坤坤同學(xué)閱讀 4,036評(píng)論 7 19
  • 在iOS開(kāi)發(fā)中經(jīng)常會(huì)涉及到觸摸事件。本想自己總結(jié)一下,但是遇到了這篇文章,感覺(jué)總結(jié)的已經(jīng)很到位,特此轉(zhuǎn)載。作者:L...
    WQ_UESTC閱讀 6,102評(píng)論 4 26
  • 翻譯自“View Controller Programming Guide for iOS”。 1 定義子類 使用...
    lakerszhy閱讀 2,491評(píng)論 0 5
  • 概述 應(yīng)用程序使用響應(yīng)者對(duì)象來(lái)接收和處理事件,屬于UIResponder類的實(shí)例對(duì)象都是響應(yīng)者,常見(jiàn)的子類包括UI...
    漸z閱讀 2,688評(píng)論 0 3