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

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

- (BOOL)canBecomeFirstResponder {//默认是NO,所以得重写此方法,设成YESreturn 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,所以得重写此方法。设成YESreturn 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

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

iOS开展——全球应对MotionEvent相关推荐

  1. 欧美 手机ios android,全球第3大手机系统,比安卓IOS都流畅,却逐渐被人遗忘!...

    全球第3大手机系统,比安卓IOS都流畅,却逐渐被人遗忘! 有很多的人在购买手机的时候,最看重的一点就是在于手机内部所搭载的处理器,因为他们认为一款手机的处理器决定了一款手机的流畅度和游戏性能,其实关系 ...

  2. 苹果的操作系统和linux,苹果IOS成为全球第三大操作系统超android和linux总和

    据net market share研究的数据显示,2010年8月份,苹果旗下的ios已经成为仅次于windows(市场份额为91.34%)和MAC(市场份额为5.00%)的全球第三大操作系统,市场份额 ...

  3. ios 中如何应对UIScrollView快速滑动(暴力用户,暴力测试)

    1.实现UIScrollViewDelegate 开始滑动: - (void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView 滑动 ...

  4. iOS开发者知识普及,Swift 挑战 Objective-C,谁会笑到最后?...

    **前言: ** 目前全球共有超过 7 亿台 iPhone 处于活跃状态,全球约有2000万名 iOS 开发者,这造就了 iOS 作为全球第二大移动设备平台的状态. 虽然安卓系统的全球市场占有率超过 ...

  5. 比尔盖茨宣布离开微软董事会:昔日全球首富致力于改变世界

    点击上方"AI遇见机器学习",选择"星标"公众号 重磅干货,第一时间送达 转自:机器之心 前不久,比尔·盖茨宣布正式离开他创办 40 余年之久的微软.他也将辞去 ...

  6. 比尔盖茨NEJM发文:新冠肺炎是百年一遇的流行病!全世界应该如何应对?

    来源:生物谷 面对任何危机,政府都有两个同等重要的责任:解决眼前的问题,并防止它再次发生.COVID-19大流行就是一个恰当的例子.我们现在需要拯救生命,同时也需要改善我们应对疫情的方式.第一点更为紧 ...

  7. iOS 12 真的能让旧款 iPhone 速度飞起吗?

    iOS 12 来了,旧款 iPhone 快上车! 去年 9 月,苹果在发布 iOS 11 时曾表示,这是先进移动操作系统 iOS 的又一次重要更新.后来在全新的 App Store.升级版的相机.改进 ...

  8. iOS开发者知识普及,Swift 挑战 Objective-C,谁会笑到最后?

    前言: 目前全球共有超过 7 亿台 iPhone 处于活跃状态,全球约有2000万名 iOS 开发者,这造就了 iOS 作为全球第二大移动设备平台的状态. 虽然安卓系统的全球市场占有率超过 iOS 系 ...

  9. 2022年全球气候金融产品研究报告

    第一章 全球气候金融概述 气候变化既是环境问题也是发展问题,需要大量气候资金的投入,金融作为推动经济发展的核心要素,在应对天气变化中能够发挥重要作用.气候金融是与应对气候变化相关的创新金融,是利用多渠 ...

最新文章

  1. 夺命雷公狗---linux NO:22 linux下的yum安装的高级配置
  2. 计算机主板风扇安装,5个装机注意事项 让你装电脑少走弯路
  3. PKI/CA (1)为什么要有PKI/CA体系?
  4. 编程能力强化(4)——模拟SQL语句解析
  5. 实验7-3-2 查找指定字符 (15分)
  6. 开发 Windows 8 Bing地图应用(2)
  7. 快速幂(二进制理解)
  8. 两款WiFi无线网络扫描工具软件:WirelessMon、Xirrus WiFi Inspector
  9. java 二进制转换十六进制的方法_Java 中二进制转换成十六进制的两种实现方法...
  10. Tupper自我指涉公式生成器
  11. 《Real-Time Rendering 4th Edition》全文翻译 - 第5章 着色基础(上)5.1 ~ 5.2
  12. 内存卡android文件夹名称,安卓手机内存卡文件夹英文名称解析——第三方应用类...
  13. 服务器主板显示ff,MSI K9A2-CF主板显示错误代码“FF”
  14. 获取光标位置及动态设置光标到指定位置
  15. eclipse中文语言包安装(别看网上那些乱七八糟的,我这个最简单)
  16. python与人工智能有关系吗_Python与人工智能到底有什么关系呢?Python学习
  17. 启动hbase的相关命令及流程
  18. 分享最新的autohotkey快捷键代码,不知不觉中写了2千行.
  19. Windows Phone 游戏——黑白棋 开发总结
  20. word中如何设置页码从任意页开始算起

热门文章

  1. AlphaFold和RoseTTAFold双剑合璧,成功预测蛋白质复合体结构,北大校友领衔登上Science...
  2. 全球首家!B站上线“杜比视界”给UP主用,“观众眼睛要被养刁了”
  3. Android源码解析:UI绘制流程之控件绘制
  4. 《C++入门经典(第5版•修订版)》——2.6 问与答
  5. playbook核心元素之 模板template 介绍(7)
  6. mac电脑 显示隐藏文件 取消显示隐藏文件
  7. 好莱坞电影公司系列电影
  8. Windows Server 2012 R2配置ISCSI磁盘共享盘(4)
  9. ArcGIS中的三种查询
  10. 关于美工ps出图table格式的处理