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
版权声明:本文博主原创文章,博客,未经同意不得转载。
iOS开展——全球应对MotionEvent的更多相关文章
- ios 中如何应对UIScrollView快速滑动(暴力用户,暴力测试)
1.实现UIScrollViewDelegate 开始滑动: - (void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView 滑动 ...
- 学习iOS前我们需要知道的事情
什么是iOS iOS是一款由苹果公司开发的操作系统(OS是Operating System的简称),就像平时在电脑上用的Windows XP.Windows 7,都是操作系统 那什么是操作系统呢?操作 ...
- 学习IOS需要知道的事
什么是iOS iOS是一款由苹果公司开发的操作系统(OS是Operating System的简称),就像平时在电脑上用的Windows XP.Windows 7,都是操作系统 那什么是操作系统呢?操作 ...
- iOS开发者知识普及,Swift 挑战 Objective-C,谁会笑到最后?
前言: 目前全球共有超过 7 亿台 iPhone 处于活跃状态,全球约有2000万名 iOS 开发者,这造就了 iOS 作为全球第二大移动设备平台的状态. 虽然安卓系统的全球市场占有率超过 iOS 系 ...
- ios开发介绍
iOS开发概述 •什么是IOS •什么是IOS开发 •为什么要选择IOS开发 •学习IOS开发的准备 1.什么是iOS •iOS是一款由苹果公司开发的操作系统(OS是Operating Sys ...
- iOS_03_为什么选择ios开发
为什么选择ios开发 为什么要选择移动开发 * 手机将是人类最离不开的设备之一,硬件软件参数也越来越强,应用需求量剧增. * 移动互联(就是将移动通信和互联网二者结合起来)发展迅速,各大公司都对移动互 ...
- iOS精美过度动画、视频会议、朋友圈、联系人检索、自定义聊天界面等源码
iOS精选源码 iOS 精美过度动画源码 iOS简易聊天页面以及容联云IM自定义聊天页面的实现思路 自定义cell的列表视图实现:置顶.拖拽.多选.删除 SSSearcher仿微信搜索联系人,高亮搜索 ...
- 微软成立反网络犯罪中心,工作环境如美剧CSI情景
微软在总部大楼内设立新网络犯罪中心(Cybercrime Center),旨在针对全球恶意软件.僵尸网络以及其他互联网犯罪行为进行实时追踪并予以打击.微软将“网络犯罪中心”设置在雷德蒙德总部大楼,目的 ...
- Android 应用开发者必看的 9 个 Tips
去年,Android应用数量已经超过iOS成为全球最大的生态系统,不过在这多大百万的应用中,有些应用的下载量很大,赚的盆满钵满:另外一些应用就石沉大海.无人问津了. 拥有多年程序开发经验,最近在开发A ...
随机推荐
- 30天自制操作系统第九天学习笔记(u盘软盘双启动版本)
暑假学习小日本的那本书:30天自制操作系统 qq交流群:122358078 ,更多学习中的问题.资料,群里分享 environment:开发环境:ubuntu 第九天的课程已学完,确实有点不想写 ...
- aix 下 实现goldengate 随os启动而自己主动启动的脚本
aix 下 实现goldengate 随os启动而自己主动启动的脚本: 1.用oracle用户建立/u01/info.txt,文件内容例如以下: sh date start mgr 2.chmod + ...
- Java中WebService实例
Web Services是由企业公布的完毕其特定商务需求的在线应用服务,其它公司或应用软件可以通过Internet来訪问并使用这项在线服务. Web Service的关键技术和规则: 1.XML:描写 ...
- R12 付款过程请求-功能和技术信息 (文档 ID 1537521.1)
In this Document Abstract History Details _afrLoop=2234450430619177&id=1537521.1&dis ...
- HDU 2829 Lawrence(动态规划-四边形不等式)
Lawrence Problem Description T. E. Lawrence was a controversial figure during World War I. He was a ...
- 《WordPress插件开发手冊》文件夹
翻译前言:国内没有关于WordPress插件开发比較具体而且系统的资料 前言 第一章:准备一个本地开发环境 介绍 在你的电脑上安装一个站点server 下载并配置一个本地的WordPress 创建一个 ...
- 关于split与StringTokenizer的理解
关于split与StringTokenizer的理解 一.split 依据匹配给定的正則表達式来拆分此字符串.此方法返回的数组包括此字符串的子字符串,每一个子字符串都由还有一个匹配给定表达式的子 ...
- java.net.SocketException: Connection reset 解决方法
java.net.SocketException: Connection reset 解决方法 最近纠结致死的一个java报错java.net.SocketException: Connection ...
- ps、top 、free查看用户资源信息
查看root用户的进程信息. 运行命令: ps -u root 查看oracle用户的进程信息. 运行命令: ps -u oracle 若查看现在的资源占用情况,如何呢? 运行命令: top 可以 ...
- windows phone 独立存储空间的操作 (2)
原文:windows phone 独立存储空间的操作 (2) IsolatedStorage独立存储空间是保存应用程序的一些数据已经配置文件,独立存储空间相对于其他的wp程序是独立的,也就是说每个wp ...