關(guān)于觸摸

事件分發(fā)

所有觸摸(Event、手勢(shì)、Button) 的事件分發(fā)流程都是一樣的。都是根據(jù)HitTest 方法找到這個(gè)視圖

事件響應(yīng)

所有觸摸(Event、手勢(shì)、Button) 的事件響應(yīng)流程也是一樣的。根據(jù)事件分發(fā)找到對(duì)應(yīng)的View 后, 會(huì)嘗試讓這個(gè)View處理事件(UIControl的各種事件、UIGestureRecognizer等),若無(wú)法處理,則沿著響應(yīng)鏈一步步向上尋找。
一、默認(rèn)情況下, 識(shí)別一個(gè)觸摸事件時(shí),手勢(shì)識(shí)別優(yōu)先于 UIResponder 響應(yīng)鏈?zhǔn)綑C(jī)制,具體體現(xiàn)為:
1、手勢(shì)識(shí)別開(kāi)始、變化的過(guò)程,gestureRecognizertouchesBegan touchesMoved同時(shí)處理響應(yīng)事件。因?yàn)槭謩?shì)的delaysTouchesBegan屬性默認(rèn)為NO, delaysTouchesEnded默認(rèn)是YES。
2、只有在gestureRecognizer 判定失敗的時(shí)候(比如一個(gè)tapGestureRecognizer遇到一個(gè)longPressGestureRecognizer手勢(shì))系統(tǒng)才會(huì)觸發(fā) UIResponder 響應(yīng)鏈?zhǔn)街械?code>touchesEnded,否則,會(huì)觸發(fā)touchesCancelled

二、UIButton 與 觸摸
在iOS6及更高的版本中,默認(rèn)控制操作可防止重復(fù)的手勢(shì)識(shí)別行為。例如,按鈕的默認(rèn)操作是單擊。如有有一個(gè)單擊手勢(shì)識(shí)別器附加到按鈕的父視圖,并且用戶(hù)點(diǎn)擊了按鈕,則按鈕的動(dòng)作方法接收觸摸事件而不是手勢(shì)識(shí)別器。這僅適用于與控件的默認(rèn)操作重疊的手勢(shì)識(shí)別。

參考文檔

https://blog.gocy.tech/2016/11/19/iOS-touch-handling/
http://www.itdecent.cn/p/53e03e558cbd

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 在iOS開(kāi)發(fā)中經(jīng)常會(huì)涉及到觸摸事件。本想自己總結(jié)一下,但是遇到了這篇文章,感覺(jué)總結(jié)的已經(jīng)很到位,特此轉(zhuǎn)載。作者:L...
    WQ_UESTC閱讀 6,249評(píng)論 4 26
  • 本文主要講解iOS觸摸事件的一系列機(jī)制,涉及的問(wèn)題大致包括: 觸摸事件由觸屏生成后如何傳遞到當(dāng)前應(yīng)用? 應(yīng)用接收觸...
    baihualinxin閱讀 1,279評(píng)論 0 9
  • 轉(zhuǎn)載: https://blog.csdn.net/qq871531334/article/details/822...
    NicooYang閱讀 1,689評(píng)論 0 9
  • 觸摸事件的生命周期 當(dāng)我們手指觸碰屏幕的那一刻,一個(gè)觸摸事件便產(chǎn)生了。經(jīng)過(guò)進(jìn)程間通信,觸摸事件被傳遞到合適的應(yīng)用之...
    Gintok閱讀 1,525評(píng)論 0 3
  • -- iOS事件全面解析 概覽 iPhone的成功很大一部分得益于它多點(diǎn)觸摸的強(qiáng)大功能,喬布斯讓人們認(rèn)識(shí)到手機(jī)其實(shí)...
    翹楚iOS9閱讀 3,221評(píng)論 0 13

友情鏈接更多精彩內(nèi)容