首页 > 检测晃动的三种方法

检测晃动的三种方法

http://stackoverflow.com/questions/150446/how-do-i-detect-when-someone-shakes-an-iphone

我的实现(基于Eran Talmor):

没必要application.applicationSupportsShakeToEdit = YES;

  • Set the applicationSupportsShakeToEdit property in the App's Delegate:



- (void)applicationDidFinishLaunching:(UIApplication *)application {



application
.applicationSupportsShakeToEdit = YES;



[window addSubview:viewController.view];

[window makeKeyAndVisible];

}

  • Add/Override canBecomeFirstResponder, viewDidAppear: and viewWillDisappear: methods in your View Controller (这个View controller必须是顶层的):



-(BOOL)canBecomeFirstResponder {

return YES;

}



-(void)viewDidAppear:(BOOL)animated {

[super viewDidAppear:animated];

[self becomeFirstResponder];

}



- (void)viewWillDisappear:(BOOL)animated {

[self resignFirstResponder];

[super viewWillDisappear:animated];

}

  • Add the motionEnded or motionBegan method to your View Controller (模拟器中响应motionBegan, motionEnded,但真实机器iphone4中只能响应motionBegan):



- (void)motionEnded:(UIEventSubtype)motion withEvent:(UIEvent *)event

{

if (motion == UIEventSubtypeMotionShake)

{

// your code

}

}

转载于:https://www.cnblogs.com/vinceoniphone/archive/2011/05/19/2051021.html

更多相关:

  • 因为函数参数是按值传递的,所以要想改变变量,必须传递地址。 二级指针实际上就是指针变量的地址,如果传递二级指针,函数声明必须写**。 (void**)&必须是本质上就是指针变量的地址才可以做这样的转换,并不是说把一个一级指针也可以转换,void**的本质是标识一个二级指针。 &data就是(默认数据类型 **)&data,(void...

  • 文章目录1. 解决问题2. 应用场景3. 实现如下:C++实现C语言实现4. 缺点 1. 解决问题 在工厂方法模式中,我们卖衣服。此时我们为每一种衣服创建不同的工厂,帽子有一个工厂专门创建,裤子有一个工厂专门创建,T恤有一个工厂专门创建。这样的方式保证了代码设计的开闭原则(对扩展开发,对修改关闭),解决了简单工厂模式中暴露的...

  • 转载于:http://blog.csdn.net/u012819339/article/details/50654764   实体作品请参看优酷视频。 若以上链接点击无效请把该链接地址复制到浏览器地址栏 http://v.youku.com/v_show/id_XODYzODczNzQ4.html 说明: 该作品为arvik于2014...

  • - (void)viewDidLoad {[super viewDidLoad];NSLog(@"我在玩手机");NSLog(@"手机没电了");[self chargeMyIphone:^{NSLog(@"出门逛街");}];NSLog(@"我在看电视"); }-(void)chargeMyIphone:(void(^)(void...

  • 本次配置需要修改的ssh登录的配置文件 vi /etc/ssh/sshd_config 允许root用户远程登录 设置PermitRootLogin参数值为yes #LoginGraceTime 2m PermitRootLogin yes #StrictModes yes #MaxAuthTries 6 #MaxSessi...

  • 介绍Oracle EBS R12 运行adadmin 安装中文语言包过程中意外中断后的处。 Oracle EBS R12 运行adadmin 安装中文语言包过程中意外中断或关机后,重新开机,运行数据库及数据库监听,再运行应用服务后,登录会出现如下提示,需要继续安装完未完成的任务。                            ...

  •  最近遇到[UITableView setEditing:YES animated:YES]后 没有animation的效果  于是发现 如果在[UITableView setEditing:YES animated:YES]  后直接使用[UITableView reloadData];的话不显示animation 于是解决方案...