觸控事件的總結

2021-08-18 12:46:44 字數 2853 閱讀 9547

/**總結:

1.1.1

dispatchtouchevent事件分發這個每個都有(無論是view 還是viewgrope,以及activity)

這個是用來處理是否分發事件(這個總是會被執行的前提是父控制項沒有攔截或者進行分發了)

如果這裡就取消事件分發則無法響應本次觸控(以後的 onintercepttouchevent或者 ontouchevent都不會執行包括父控制項的)

1.2ontouchevent事件分發這個每個都有(無論是view 還是viewgrope,以及activity)

用來處理自己的觸控事件,如果自己返回true則不再給下面的子view分發觸控事件

1.3onintercepttouchevent這個是是否攔截事件(只有viewgrope才有)

攔截觸控事件的,如果dispatchtouchevent是同意的則可以通過這個來攔截不再給子view分發

2.如果dispatchtouchevent為false也就是可以往下給子view分發事件,

但是onintercepttouchevent攔截true的時候講不會再給子view了,

包括ontouchevent處理了事件任意乙個為也就是,

3.dispatchtouchevent true連自己的響應都不會有,也沒有自己的攔截

4.super.dispatchtouchevent(ev);並不會和false相等,

如果是flase,子view也不會得到事件分發的處理(如果自己不想攔截處理最好用super,畢竟你不想處理父類還有要處理的東西呢)

以上是個人總結如果有問題或者錯誤希望大家指導,以下是測試部分的響應日誌:

//標準:activity->linearlayout->textview (布局就是linearlayout裡面乙個textview)

dispatchtouchevent:activity 事件分發

dispatchtouchevent:linearlayout 事件分發

onintercepttouchevent:linearlayout 攔截

dispatchtouchevent:textview 事件分發

ontouchevent: textview事件響應

ontouchevent: linearlayout事件響應

ontouchevent: activity事件響應

dispatchtouchevent:activity 事件分發

ontouchevent: activity事件響應

*//* 攔截後dispatchtouchevent:activity 事件分發

dispatchtouchevent:linearlayout 事件分發

onintercepttouchevent:linearlayout 攔截

ontouchevent: linearlayout事件響應

ontouchevent: activity事件響應

dispatchtouchevent:activity 事件分發

ontouchevent: activity事件響應*/

/** dispatchtouchevent true後(不在進行事件分發)

dispatchtouchevent:activity 事件分發

dispatchtouchevent:linearlayout 事件分發

dispatchtouchevent:activity 事件分發

dispatchtouchevent:linearlayout 事件分發

dispatchtouchevent:activity 事件分發

dispatchtouchevent:linearlayout 事件分發

*//**

* touch true後

dispatchtouchevent:activity 事件分發

dispatchtouchevent:linearlayout 事件分發

onintercepttouchevent:linearlayout 攔截

dispatchtouchevent:textview 事件分發

ontouchevent: textview事件響應

ontouchevent: linearlayout事件響應

dispatchtouchevent:activity 事件分發

dispatchtouchevent:linearlayout 事件分發

ontouchevent: linearlayout事件響應

dispatchtouchevent:activity 事件分發

dispatchtouchevent:linearlayout 事件分發

ontouchevent: linearlayout事件響應

*//*onintercepttouchevent 和touch為true

dispatchtouchevent:activity 事件分發

dispatchtouchevent:linearlayout 事件分發

onintercepttouchevent:linearlayout 攔截

ontouchevent: linearlayout事件響應

dispatchtouchevent:activity 事件分發

dispatchtouchevent:linearlayout 事件分發

ontouchevent: linearlayout事件響應

dispatchtouchevent:activity 事件分發

dispatchtouchevent:linearlayout 事件分發

ontouchevent: linearlayout事件響應*/

TouchView觸控事件

touchview 繼承自uiview 初始化時 self multipletouchenabled yes 開啟多指觸控 取出一根手指 uitouch touch touches anyobject 獲得手指在檢視上的位置 cgpoint point touch locationinview se...

觸控事件處理

ios programming 觸控事件 處理 1 iphone ipad無鍵盤 的 在cocoa中,代表觸控物件的類是uitouch。當使用者觸控螢幕幕後,就會產生相應的事件,所有相關的uitouch物件都被包裝在事件中,被程式交由特定的物件來處理。uitouch物件直接包括觸控的詳細資訊。uit...

01 觸控事件

1.事件處理方法 void viewdidload 重複父類的方法 void touchesbegan nsset touches withevent uievent event 開始觸控 void touchesmoved nsset touches withevent uievent event...