iOS GestureRecognizer與UIResponder touch事件響應(yīng)

在iOS中UIView是繼承于UIResponder的,而UIResponder是專(zhuān)門(mén)用來(lái)響應(yīng)用戶(hù)的操作處理各種事件的降狠,包括觸摸事件(Touch Events)西篓、運(yùn)動(dòng)事件(Motion Events)锣光、遠(yuǎn)程控制事件(Remote Control Events,如插入耳機(jī)調(diào)節(jié)音量觸發(fā)的事件)踪危,而很多我們常用的類(lèi)也繼承于UIResponder(UIApplication蔬浙、UIView、UIViewController).

而以下幾個(gè)方法

@interface UIResponder : NSObject
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event;//觸摸屏幕
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event;//在屏幕上移動(dòng)
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event;//離開(kāi)屏幕
- (void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event;

是響應(yīng)觸摸事件的方法贞远,我們可以利用這幾個(gè)方法自定義自己的手勢(shì)畴博。當(dāng)然Apple也為我們提供了幾個(gè)基礎(chǔ)的封裝的手勢(shì)提供使用(了UIGestureRecognizer手勢(shì)識(shí)別)

這里并不深入研究手勢(shì)的響應(yīng)和傳遞,而是研究下幾個(gè)基礎(chǔ)的手勢(shì)和touchs的關(guān)系蓝仲,這里主要利用這幾個(gè)內(nèi)置的手勢(shì)方法:

UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(tapEvent:)];
[self addGestureRecognizer:tap];//點(diǎn)擊

UIPanGestureRecognizer *pan = [[UIPanGestureRecognizer alloc]initWithTarget:self action:@selector(tapEvent:)];
[self addGestureRecognizer:pan];//平移俱病,慢速移動(dòng)

UISwipeGestureRecognizer *swipe = [[UISwipeGestureRecognizer alloc]initWithTarget:self action:@selector(tapEvent:)];//滑動(dòng),快速移動(dòng)
[self addGestureRecognizer:swipe];

UILongPressGestureRecognizer *longG = [[UILongPressGestureRecognizer alloc]initWithTarget:self action:@selector(tapEvent:)];//長(zhǎng)按
[self addGestureRecognizer:longG];
屏幕快照 2018-07-30 上午9.19.35.png

藍(lán)色部分就是需要添加手勢(shì)的view杂曲,我們分別添加上述的手勢(shì)進(jìn)行測(cè)試庶艾,同時(shí)實(shí)現(xiàn)touchs觸摸相關(guān)方法

屏幕快照 2018-07-30 上午9.39.21.png

首先是UITapGestureRecognizer的方法執(zhí)行順序

屏幕快照 2018-07-30 上午9.21.30.png

很容易理解袁余,因?yàn)橹皇莟ap單擊事件擎勘,所以在檢測(cè)到begin touch時(shí)手勢(shì)事件就開(kāi)始響應(yīng),同時(shí)并不會(huì)有move動(dòng)作

然后是UIPanGestureRecognizer

屏幕快照 2018-07-30 上午9.22.03.png

pan手勢(shì)是檢測(cè)move的颖榜,所以在touch move有響應(yīng)時(shí)棚饵,pan手勢(shì)也進(jìn)行響應(yīng)

UISwipeGestureRecognizer

屏幕快照 2018-07-30 上午9.23.14.png

UILongPressGestureRecognizer

屏幕快照 2018-07-30 上午9.23.34.png

通過(guò)以上測(cè)試表明系統(tǒng)內(nèi)置的手勢(shì)事件是對(duì)UIResponder touch事件的監(jiān)測(cè)封裝,通過(guò)不同的計(jì)算得出是否觸發(fā)了某個(gè)手勢(shì)掩完,而根據(jù)不同的手勢(shì)噪漾,觸發(fā)的時(shí)機(jī)也不同。通過(guò)UIResponder且蓬,我們也可以自定義自己的手勢(shì)欣硼,通過(guò)模擬系統(tǒng)手勢(shì)很容易就能實(shí)現(xiàn).

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市恶阴,隨后出現(xiàn)的幾起案子诈胜,更是在濱河造成了極大的恐慌,老刑警劉巖冯事,帶你破解...
    沈念sama閱讀 211,817評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件焦匈,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡昵仅,警方通過(guò)查閱死者的電腦和手機(jī)缓熟,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,329評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人够滑,你說(shuō)我怎么就攤上這事垦写。” “怎么了彰触?”我有些...
    開(kāi)封第一講書(shū)人閱讀 157,354評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵梯澜,是天一觀(guān)的道長(zhǎng)。 經(jīng)常有香客問(wèn)我渴析,道長(zhǎng)晚伙,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,498評(píng)論 1 284
  • 正文 為了忘掉前任俭茧,我火速辦了婚禮咆疗,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘母债。我一直安慰自己午磁,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,600評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布毡们。 她就那樣靜靜地躺著迅皇,像睡著了一般。 火紅的嫁衣襯著肌膚如雪衙熔。 梳的紋絲不亂的頭發(fā)上登颓,一...
    開(kāi)封第一講書(shū)人閱讀 49,829評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音红氯,去河邊找鬼框咙。 笑死,一個(gè)胖子當(dāng)著我的面吹牛痢甘,可吹牛的內(nèi)容都是我干的喇嘱。 我是一名探鬼主播,決...
    沈念sama閱讀 38,979評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼塞栅,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼者铜!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起放椰,我...
    開(kāi)封第一講書(shū)人閱讀 37,722評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤作烟,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后庄敛,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體俗壹,經(jīng)...
    沈念sama閱讀 44,189評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,519評(píng)論 2 327
  • 正文 我和宋清朗相戀三年藻烤,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了绷雏。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片头滔。...
    茶點(diǎn)故事閱讀 38,654評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖涎显,靈堂內(nèi)的尸體忽然破棺而出坤检,到底是詐尸還是另有隱情,我是刑警寧澤期吓,帶...
    沈念sama閱讀 34,329評(píng)論 4 330
  • 正文 年R本政府宣布早歇,位于F島的核電站,受9級(jí)特大地震影響讨勤,放射性物質(zhì)發(fā)生泄漏箭跳。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,940評(píng)論 3 313
  • 文/蒙蒙 一潭千、第九天 我趴在偏房一處隱蔽的房頂上張望谱姓。 院中可真熱鬧,春花似錦刨晴、人聲如沸屉来。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,762評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)茄靠。三九已至,卻和暖如春蝶桶,著一層夾襖步出監(jiān)牢的瞬間慨绳,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,993評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工莫瞬, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留儡蔓,地道東北人郭蕉。 一個(gè)月前我還...
    沈念sama閱讀 46,382評(píng)論 2 360
  • 正文 我出身青樓疼邀,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親召锈。 傳聞我的和親對(duì)象是個(gè)殘疾皇子旁振,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,543評(píng)論 2 349

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

  • 好奇觸摸事件是如何從屏幕轉(zhuǎn)移到APP內(nèi)的?困惑于Cell怎么突然不能點(diǎn)擊了涨岁?糾結(jié)于如何實(shí)現(xiàn)這個(gè)奇葩響應(yīng)需求拐袜?亦或是...
    Lotheve閱讀 56,839評(píng)論 51 598
  • 在iOS開(kāi)發(fā)中經(jīng)常會(huì)涉及到觸摸事件。本想自己總結(jié)一下梢薪,但是遇到了這篇文章蹬铺,感覺(jué)總結(jié)的已經(jīng)很到位,特此轉(zhuǎn)載秉撇。作者:L...
    WQ_UESTC閱讀 5,995評(píng)論 4 26
  • 觸摸事件的生命周期 當(dāng)我們手指觸碰屏幕的那一刻甜攀,一個(gè)觸摸事件便產(chǎn)生了秋泄。經(jīng)過(guò)進(jìn)程間通信,觸摸事件被傳遞到合適的應(yīng)用之...
    Gintok閱讀 1,344評(píng)論 0 3
  • 在開(kāi)發(fā)過(guò)程中规阀,大家或多或少的都會(huì)碰到令人頭疼的手勢(shì)沖突問(wèn)題恒序,正好前兩天碰到一個(gè)類(lèi)似的bug,于是借著這個(gè)機(jī)會(huì)了解了...
    閆仕偉閱讀 5,303評(píng)論 2 23
  • 《找到問(wèn)題的根源》 如果你覺(jué)得團(tuán)隊(duì)的某個(gè)人有問(wèn)題,直接去找那個(gè)人,并要求與他談話(huà)谁撼。從...
    新民李健閱讀 364評(píng)論 0 0