• 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

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

  • 相关阅读:
    解决 Ant Sword-HTTPS 证书失效(cert_has_expired)连不上问题
    通达OA 11.2后台getshell漏洞复现
    通达OA 任意文件上传+文件包含导致RCE
    xxl-job <=2.0.2 反序列化漏洞
    代理模式学习
    javassist 使用笔记
    CommonsCollections3 反序列化利用链分析
    CommonsCollections2 反序列化利用链分析
    CommonsCollections1 反序列化利用链分析
    httpd通过ajp协议反向代理tomcat
  • 原文地址:https://www.cnblogs.com/zfyouxi/p/4885788.html
Copyright © 2020-2023  润新知