轉載:響應者鏈工作原理

響應者鏈

響應者鏈是由一個一個響應者組成的長鏈缤底;
響應者鏈定義了iOS中觸摸事件的交互規(guī)則;
如果hit-test檢測出的view沒有響應事件慷丽,事件就會沿著響應者鏈往下傳遞嗽仪;
如果鏈中某個響應者響應了事件或者已經(jīng)沒有響應者了,傳遞就會結束泰佳。

觸摸檢測(Hit-Test)


通過觸碰檢測找出Touch發(fā)生在哪個視圖上盼砍,遞歸檢測所有子視圖,定位準確位置乐纸;
如果觸摸發(fā)生在E上衬廷;
Touch在A Bounds內(nèi);
檢測子視圖B和C汽绢;
如果Touch沒在B里吗跋,在C里;
檢測D和E宁昭;
Touch沒在D里跌宛,在E里,且E沒子視圖积仗。

調(diào)整事件傳遞

關閉事件的傳遞:userInteractionEnable 屬性設置為NO疆拘,此屬性是UIView的,所有子類都能設置寂曹。當視圖hidden屬性為YES或者alpha為0時哎迄,視圖也不接受事件回右。
在一定時間內(nèi)關閉事件傳遞:應用程序調(diào)用UIApplication的benginIgnoringInteractionEvents和endIgnoringInteractionEvents.

UIEvent

UIEvent:事件,是由硬件捕獲到的一個表示用戶操作設備的對象漱挚;
事件分為三類:觸摸事件翔烁、晃動事件、遠程控制事件旨涝;

UIResponder

UIResponder:響應者蹬屹,是可以響應事件并且可以對其進行處理的對象;
UIResponder是響應者的基類白华,UIApplication慨默、UIView和所有從UIView派生出來的子類都是源自它;
第一響應者是當前正在接受事件的響應者對象弧腥。

UITouch

UITouch:手指厦取,表示觸摸事件的一個手指;
UIView支持觸摸事件鸟赫,而且支持多點觸摸蒜胖;
需要定義UIView子類,實現(xiàn)觸摸相關的方法抛蚤;

touchesBegan:withEvent://開始觸摸
touchesMoved:withEvent://手指移動
touchesEnded:withEvent://結束觸摸
touchesCancelled:withEvent://觸摸終端
locationInView://當前手指位置
previousLocationView://上一次手指位置

iOS默認的是單點觸摸,如果想要支持多點觸摸寻狂,需要將multipleTouchEnabled 設置為YES岁经,默認是NO。

總結iOS 視圖不響應點擊事件的可能性:

view的userInteractionEnable 沒有設置為YES蛇券;
子視圖 超過 父視圖的顯示區(qū)域缀壤;
當視圖hidden屬性為YES或者alpha為0時;

其他歡迎補充纠亚。

本文轉自:李劍飛的技術博客
原文 http://lijianfei.sinaapp.com/?p=599

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末塘慕,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子蒂胞,更是在濱河造成了極大的恐慌图呢,老刑警劉巖,帶你破解...
    沈念sama閱讀 207,113評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件骗随,死亡現(xiàn)場離奇詭異蛤织,居然都是意外死亡,警方通過查閱死者的電腦和手機鸿染,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評論 2 381
  • 文/潘曉璐 我一進店門指蚜,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人涨椒,你說我怎么就攤上這事摊鸡≌烂剑” “怎么了?”我有些...
    開封第一講書人閱讀 153,340評論 0 344
  • 文/不壞的土叔 我叫張陵免猾,是天一觀的道長些椒。 經(jīng)常有香客問我,道長掸刊,這世上最難降的妖魔是什么免糕? 我笑而不...
    開封第一講書人閱讀 55,449評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮忧侧,結果婚禮上石窑,老公的妹妹穿的比我還像新娘。我一直安慰自己蚓炬,他們只是感情好松逊,可當我...
    茶點故事閱讀 64,445評論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著肯夏,像睡著了一般经宏。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上驯击,一...
    開封第一講書人閱讀 49,166評論 1 284
  • 那天烁兰,我揣著相機與錄音,去河邊找鬼徊都。 笑死沪斟,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的暇矫。 我是一名探鬼主播主之,決...
    沈念sama閱讀 38,442評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼李根!你這毒婦竟也來了槽奕?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 37,105評論 0 261
  • 序言:老撾萬榮一對情侶失蹤房轿,失蹤者是張志新(化名)和其女友劉穎粤攒,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體冀续,經(jīng)...
    沈念sama閱讀 43,601評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡琼讽,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,066評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了洪唐。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片钻蹬。...
    茶點故事閱讀 38,161評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖凭需,靈堂內(nèi)的尸體忽然破棺而出问欠,到底是詐尸還是另有隱情肝匆,我是刑警寧澤,帶...
    沈念sama閱讀 33,792評論 4 323
  • 正文 年R本政府宣布顺献,位于F島的核電站旗国,受9級特大地震影響,放射性物質發(fā)生泄漏注整。R本人自食惡果不足惜能曾,卻給世界環(huán)境...
    茶點故事閱讀 39,351評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望肿轨。 院中可真熱鬧寿冕,春花似錦、人聲如沸椒袍。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽驹暑。三九已至玫恳,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間优俘,已是汗流浹背京办。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評論 1 261
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留兼吓,地道東北人臂港。 一個月前我還...
    沈念sama閱讀 45,618評論 2 355
  • 正文 我出身青樓,卻偏偏與公主長得像视搏,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子县袱,可洞房花燭夜當晚...
    茶點故事閱讀 42,916評論 2 344

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

  • 好奇觸摸事件是如何從屏幕轉移到APP內(nèi)的浑娜?困惑于Cell怎么突然不能點擊了?糾結于如何實現(xiàn)這個奇葩響應需求式散?亦或是...
    Lotheve閱讀 56,680評論 51 597
  • 在iOS開發(fā)中經(jīng)常會涉及到觸摸事件筋遭。本想自己總結一下,但是遇到了這篇文章暴拄,感覺總結的已經(jīng)很到位漓滔,特此轉載。作者:L...
    WQ_UESTC閱讀 5,989評論 4 26
  • 用戶以多種方式操縱他們的iOS設備乖篷,例如觸摸屏幕或搖動設備响驴。 iOS會解釋用戶何時以及如何操作硬件并將此信息傳遞到...
    坤坤同學閱讀 3,978評論 7 19
  • 概述 應用程序使用響應者對象來接收和處理事件豁鲤,屬于UIResponder類的實例對象都是響應者秽誊,常見的子類包括UI...
    漸z閱讀 2,638評論 0 3
  • 本篇包括2部分:前篇是UIResponder的官方API的記錄,后篇是對官方API的理解 UIResponder概...
    你好自己閱讀 1,406評論 0 7