UIResponder介紹,uiresponder

來源:互聯網
上載者:User

UIResponder介紹,uiresponder

  該UIResponder類定義了響應和處理事件的對象介面。它是UIView和UIApplication的超類(UIWindow)。這些類的執行個體有時被稱為響應者對象,簡單地說就是響應者。

 

  通常有2種事件類型,觸摸事件和移動事件。

  處理觸摸事件的主要方法

  1.touchesBegan:withEvent:

  2.touchesMoved:withEvent:

  3.touchesEnded:withEvent:

  4.touchesCancelled:withEvent:

這些方法的參數與觸摸它們的事件相關聯,開始觸摸以及觸摸位置的改變都會發生觸摸事件。因此iOS允許在多點觸摸中響應者分別追蹤和處理觸摸。只要手指觸控螢幕幕,滑動,從螢幕離開,都會產生一個UIEvent對象,事件包括UITouch對象

  處理移動事件的主要方法

  1.motionBegan:withEvent:

  2.motionEnded:withEvent:

  3.motionCancelled:withEvent:

另外,canPerformAction:withSender: 方法允許響應程式來驗證使用者介面中的命令,而 undoManager 屬性返回最近的在響應鏈中NSUndoManager 對象。

UIEventType結構體定義了事件類型。

 

typedef NS_ENUM(NSInteger, UIEventType) {    UIEventTypeTouches,    UIEventTypeMotion,    UIEventTypeRemoteControl,#ifndef SDK_HIDE_TIDE    UIEventTypePresses NS_ENUM_AVAILABLE_IOS(9_0),#endif};

 

  

  管理響應者鏈

   - (nullable UIResponder*)nextResponder  返回當前接收者的下一個響應者,如果沒有返回nil。讓響應鏈中下一個對象處理事件。  UIResponder類預設會返回nil,並不會自動儲存或設定下一個響應者。因此它的子類必須重寫此方法以設定下一個響應者。是響應者鏈行程順序  、    - (BOOL)isFirstResponder  判斷接收者是否為第一響應者。返回YES則該訊息接收者為第一響應者,反之不是第一響應者。     - (BOOL)becomeFirstResponder  通知接收者在其視窗中它即將成為第一響應者。預設返回YES。    - (BOOL)resignFirstResponder  解除當前接收者為第一響應者。    - (BOOL)canResignFirstResponder  判斷接收者是否可以解除第一響應者。返回yes為可以,反之不可以解除。    管理輸入視圖    @property (nullable, nonatomic, readonly, strong) __kindof UIView *inputView   當接收者成為第一響應者時顯示的自訂視圖。此屬性通常用於提供一個視圖以更換 UITextField 和 UITextView 對象提供的系統鍵盤。它為唯讀屬性。當接收者成為第一響應者時該視圖自動呈現,同樣解除第一響應者時該視圖應該自動消失。    @property (nullable, nonatomic, readonly, strong) UIInputViewController *inputViewController  同上。    - (void)reloadInputViews  當接收者為第一響應者時更新輸入視圖或子視圖。     響應觸摸事件

  - (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(nullable UIEvent *)event

  當開始觸控螢幕幕是發生。touches為事件觸摸的UITouch執行個體的集合。event是引起事件的對象。

  

  - (void)touchesMoved:(NSSet<UITouch *> *)touches withEvent:(nullable UIEvent *)event

  當一根或多根手指在螢幕中移動時發生

 

  - (void)touchesEnded:(NSSet<UITouch *> *)touches withEvent:(nullable UIEvent *)event

  當一根或多根手指在螢幕中離開時發生

 

  - (void)touchesCancelled:(nullable NSSet<UITouch *> *)touches withEvent:(nullable UIEvent *)event

  觸摸取消時發生(記憶體吃緊)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.