iOS事件處理指南(一)

2021-06-22 07:16:16 字數 1105 閱讀 2411

使用者操作ios裝置有多種方法,像觸控螢幕和搖晃裝置。ios系統翻譯使用者何時和怎樣操作硬體,並把操作資訊傳遞給你的應用。你的應用越是通過自然和直覺的方式響應動作,越是能激發使用者的使用體驗。

事件是物件傳送到乙個應用程式通知使用者操作。在ios中,事件可以採用許多形式:多點觸控事件、移動事件和控制多**事件。最後的事件型別就是我們熟知的通過外部附件遠端控制事件。

ios應用識別觸控的組合並且通過直覺的方式響應給使用者,例如在內容上縮放以響應捏合手勢和滾動以響應輕拂事件。事實上,一些手勢非常普遍,它們都是建立在uikit上。例如,uicontrol的子類,像uibutton和uislider,分別響應特定的事件----在按鈕上的輕敲、在滑塊兒上的拖拽。當你設定這些控制單元,當特定的觸控發生時,這些控制單元會傳送動作訊息到目標物件。通過使用手勢識別器你可以在檢視上使用target-action機制。當你附加乙個手勢識別器到乙個檢視,檢視就相當於乙個控制單元來響應你所指定的任何手勢。手勢識別器為複雜的事件處理邏輯提供更高階別的抽象。因為手勢識別器是強大的、可復用的和能適應的,所以在你的應用中實現觸控事件的處理使用手勢識別器是你的首選。你可以使用內建的手勢識別器並且定製它的行為,或者你建立你自己的手勢識別器來識別新的手勢。

當ios識別乙個事件,它把事件傳遞到跟處理該事件似乎是最相關的初始物件,例如乙個觸控事件所發生的檢視。如果初始物件不能處理該事件,ios繼續講事件傳遞到更大範圍的物件,直到找到乙個物件有足夠的上下文來處理事件。這條物件的序列就是響應鏈(responder chain),ios傳遞事件驗證這條鏈,它也轉移響應事件的責任。這個設計模式使事件處理合作的和動態的。

相關章節。

許多事件是uikit中uievent類的例項。乙個uievent包含事件的資訊,你可以根據uievent決定如何響應事件。當使用者乙個動作產生,像手指觸控螢幕並沿著螢幕移動,ios持續傳送事件物件到乙個應用上處理。每個事件都有乙個型別:觸控、搖晃移動、或遠端控制和子型別。

取決於你的應用,uikit控制單元和手勢識別器可以充分處理你的應用所有的觸控事件。即使你的應用有自定義的檢視,你也可以使用手勢識別器。一般說來,當你的應用響應乙個跟檢視自身緊緊耦合的觸控時,你寫你自己的觸控事件處理,例如觸控下的繪畫。在這些情況下,由你負責低階別的事件處理。你實現那些觸控方法,在這些方法中,你分析原始的觸控事件並適當地響應。

iOS 觸控事件處理

window 觸控產生時所處的視窗。由於視窗可能發生變化,當前所在的視窗不一定是最開始的視窗。view 觸控產生時所處的檢視。由於檢視可能發生變化,當前檢視也不一定時最初的檢視。tapcount 輕擊 tap 操作和滑鼠的單擊操作類似,tapcount表示短時間內輕擊螢幕的次數。因此可以根據tapc...

iOS 中的事件處理

基礎理論 1 在ios 中 不是任何物件都能處理事件的,只有繼承uiresponder的物件才能接受並處理事件,我們稱之為響應者物件 2 uiresponder當中存在下列四個api 觸控開始時呼叫 void touchesbegan nsset touches withevent nullable...

IOS 開發 事件截斷處理

前兩節接講的在蘋果原有傳輸順序上進行定製自己的需求,一般而言這些就足夠了,不過對於複雜的畫圖程式,可能要求稍微高點。比如說我有乙個scrollview a 的子view為scrollview b,我在b上滑動到一定的距離後,讓a滑動,預設輕快下辦不到,怎麼辦?我們重寫a的hittesting方法,在...