iOS開發 全域性響應MotionEvent

2021-09-30 12:08:22 字數 1307 閱讀 5612

遇到這樣乙個需求:應用無論處於哪個view controller,搖動手機,都能夠出發某一方法。

能夠想到的思路就是用蘋果封裝好的「motionevent」,但是如果簡單的把一下**加到某一view controller中,那麼只有在該view controller展示在前端時,搖動手機才會出發方法。

- (bool)canbecomefirstresponder 

然後實現下列方法://很像touchevent事件

- (void)motionbegan:(uieventsubtype)motion withevent:(uievent *)event

- (void)motionended:(uieventsubtype)motion withevent:(uievent *)event

- (void)motioncancelled:(uieventsubtype)motion withevent:(uievent *)event

解決方法:用category擴充套件uiwindow,**如下:

uiwindow+.h

#import #define uieventsubtypemotionshakenotification @"uieventsubtypemotionshakenotification"

@inte***ce uiwindow (motion)

// @override

- (bool)canbecomefirstresponder;

- (void)motionended:(uieventsubtype)motion withevent:(uievent *)event;

@end

uiwindow+.m

#import "uiwindow+.h"

@implementation uiwindow (motion)

- (bool)canbecomefirstresponder

然後實現下列方法://很像touchevent事件

- (void)motionbegan:(uieventsubtype)motion withevent:(uievent *)event

- (void)motionended:(uieventsubtype)motion withevent:(uievent *)event

- (void)motioncancelled:(uieventsubtype)motion withevent:(uievent *)event

@end

iOS開發那些事 響應記憶體警告

好的應用應該在系統記憶體警告情況下釋放一些可以重新建立的資源。在ios中我們可以在應用程式委託物件 檢視控制器以及其它類中獲得系統記憶體警告訊息。1 應用程式委託物件 2 檢視控制器 在檢視控制器中接收記憶體警告訊息,需要重寫didreceivememorywarning方法。viewcontrol...

2440 ARM開發板移植Motion網路監控系統

移植環境 紅色粗字型字為修改後內容,藍色粗體字為特別注意內容 1,開發板 韋東山jz2440 2,linux 版本 linux 3.4.2 3,系統版本 ubuntu9.10 4,交叉編譯環境 arm linux gcc 4.4.3 5,參考文獻 motion這個工具非常適合用來做一般的嵌入式移動監...

iOS開發 響應者鏈觸控事件 二

不接收使用者互動 userinteractionenabled no 隱藏hidden yes 透明alpha 0.0 0.01 主視窗會在檢視層次結構中找到乙個最合適的檢視來處理觸控事件,但是這僅僅是整個事件處理過程的第一步 找到合適的檢視控制項後,就會呼叫檢視控制項的touches方法來作具體的...