• iOS开展——全球应对MotionEvent


    遇到这样的要求:无论在哪个应用程序view controller,摇动手机,我们可以启动的方法。

    你可以认为这个想法是使用包装的苹果“MotionEvent”。但是,假如简单地把代码添加到view controller于,所以只存在view controller示在前端时,摇动手机才会出发方法。

    - (BOOL)canBecomeFirstResponder {//默认是NO,所以得重写此方法,设成YES
         return YES;
    }
    
    然后实现下列方法://非常像TouchEvent事件
     
    - (void)motionBegan:(UIEventSubtype)motion withEvent:(UIEvent *)event
    {
    }
     
    - (void)motionEnded:(UIEventSubtype)motion withEvent:(UIEvent *)event
    {
        NSLog(@"shake");
    }
     
    - (void)motionCancelled:(UIEventSubtype)motion withEvent:(UIEvent *)event
    {
    }

    解决方法:用Category扩展UIWindow。代码例如以下:

    UIWindow+.h

    #import <UIKit/UIKit.h>
    
    
    #define UIEventSubtypeMotionShakeNotification @"UIEventSubtypeMotionShakeNotification"
    
    
    @interface UIWindow (Motion)
    
    // @override
    - (BOOL)canBecomeFirstResponder;
    - (void)motionEnded:(UIEventSubtype)motion withEvent:(UIEvent *)event;
    
    @end
    

    UIWindow+.m

    #import "UIWindow+.h"
    
    
    @implementation UIWindow (Motion)
    - (BOOL)canBecomeFirstResponder {//默认是NO,所以得重写此方法。设成YES
         return YES;
    }
    
    然后实现下列方法://非常像TouchEvent事件
     
    - (void)motionBegan:(UIEventSubtype)motion withEvent:(UIEvent *)event
    {
    }
     
    - (void)motionEnded:(UIEventSubtype)motion withEvent:(UIEvent *)event
    {
        NSLog(@"shake");
    }
     
    - (void)motionCancelled:(UIEventSubtype)motion withEvent:(UIEvent *)event
    {
    }
    
    @end

    版权声明:本文博主原创文章,博客,未经同意不得转载。

  • 相关阅读:
    awk应用
    字符串应用,expect预期交互,数组,正则表达式
    for,while循环,case分支,shell函数
    数值运算,if结构
    shell基础应用,变量的扩展应用
    rsync基本用法与配置,split分离解析
    PXE自动装机
    配置DNS服务器
    进程查看,终止
    应用技巧,vim用法,编译安装软件包
  • 原文地址:https://www.cnblogs.com/zfyouxi/p/4885788.html
Copyright © 2020-2023  润新知