淺談iOS觸摸事件理解,淺談ios觸摸

來源:互聯網
上載者:User

淺談iOS觸摸事件理解,淺談ios觸摸

iOS的觸摸事件個人總結,分為兩步:

第一步:是找到哪個視圖上觸摸

第二步:分析由誰去響應(響應者連)

1.尋找被觸摸的視圖原理如

hitText:withEvent:的方法處理流程:

首先會在當前視圖view上調用pointInside:withEvent:方法來判斷觸摸事件是否存在當前view中,如果返回NO,則說明觸摸事件不在該view範圍中,hitText:withEvent:方法返回nil;如果返回YES,則說明觸摸在該view中,則向該view的subViews發送htiText:withEvent:訊息,所有subviews的數組遍曆順序是從後往前,直至遍曆到pointInside:withEvent:傳回值為非空或者遍曆完所有subview結束。如果遍曆有非Null 物件,則hitTextField:withEvent:返回該對象結束;如果遍曆完沒有非Null 物件,則返回自己(self)。

 

2.響應者原理如

首先會在觸摸view上調用inital view方法,看能否處理此事件,如果不能則會將事件傳遞給其上級視圖(inital view的superView);如果上級視圖仍然無法處理則會繼續往上傳遞;一直傳遞到視圖控制器view controller,首先判斷視圖控制器的根視圖view是否能處理此事件;如果不能則接著判斷該視圖控制器能否處理此事件,如果還是不能則繼續向上傳遞;(對於第二個圖視圖控制器本身還在另一個視圖控制器中,則繼續交給父視圖控制器的根視圖,如果根視圖不能處理則交給父視圖控制器處理);一直到window,如果window還是不能處理此事件則繼續交給application(UIApplication單例對象)處理,如果最後application還是不能處理此事件則將其丟棄。

 轉載請註明出處!

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.