zoukankan      html  css  js  c++  java
  • 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

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

  • 相关阅读:
    团队冲刺阶段二(八)
    团队项目事后诸葛亮会议
    团队冲刺阶段二(七)
    团队冲刺阶段二(六)
    团队冲刺阶段二(五)
    团队冲刺阶段二(四)
    HTML5 CSS3
    浮动和渐变色,定位position,元素的层叠顺序
    css盒模型。边框和内外边距
    标签分类与元素转换
  • 原文地址:https://www.cnblogs.com/zfyouxi/p/4885788.html
Copyright © 2011-2022 走看看