iOS 实现 摇一摇

摇一摇功能:调用了系统自带加速器,当设备摇动时,系统会 计算出加速器的加速值,然后告诉设备是否发生摇动手势,系统只会运动开始和结束时通知你,并不会在运动发生的整个过程中始终向你报告每一次运动。例如,你快速摇动设备三次,那只会收到一个摇动事件。

想要实现摇动手势,首先需要使视图控制器成为第一响应者,注意不是单独的控件。成为第一响应者最恰当的时机是在视图出现的时候,而在视图消失的时候释放第一响应者。

 1 -(BOOL)canBecomeFirstResponder
 2 {
 3     return YES;
 4 }
 5
 6 -(void)viewDidAppear:(BOOL)animated
 7 {
 8     [super viewDidAppear:animated];
 9     [self becomeFirstResponder];
10 }
11
12 -(void)viewDidDisappear:(BOOL)animated
13 {
14     [super viewDidDisappear:animated];
15     [self resignFirstResponder];
16 }

然后实现motionEnded方法,因为是手机移动结束的时候会调用 这个方法

1 -(void)motionEnded:(UIEventSubtype)motion withEvent:(UIEvent *)event
2 {
3     if (motion == UIEventSubtypeMotionShake) {
4         NSLog(@"I am shaker");
5     }
6 }
时间: 2024-10-13 02:27:35

iOS 实现 摇一摇的相关文章

摇一摇 iOS

//微信的摇一摇是怎么实现的~发现原来 ios本身就支持//在 UIResponder中存在这么一套方法 - (void)motionBegan:(UIEventSubtype)motion withEvent:(UIEvent *)event __OSX_AVAILABLE_STARTING(__MAC_NA,__IPHONE_3_0); - (void)motionEnded:(UIEventSubtype)motion withEvent:(UIEvent *)event __OSX_AV

iOS开发——高级技术&摇一摇功能的实现

摇一摇功能的实现 在AppStore中多样化功能越来越多的被使用了,所以今天就开始介绍一些iOS开发的比较实用,但是我们接触的比较少的功能,我们先从摇一摇功能开始 在 UIResponder中存在这么一套方法 1 - (void)motionBegan:(UIEventSubtype)motion withEvent:(UIEvent *)event __OSX_AVAILABLE_STARTING(__MAC_NA,__IPHONE_3_0); 2 3 - (void)motionEnded:

ios UIWindow 错误使用导致无法接收motionEnded(摇一摇)函数

今天遇到一个问题,第一次运行程序时, - (void)motionEnded:(UIEventSubtype)motion withEvent:(UIEvent *)event 函数无法调用,第二次就好了.找了1天,终于找到了原因. 在第一次运行时,显示了一个帮助页面,而这个页面当时是使用再加一层UIWindow来实现的,现实时调用了 makeKeyAndVisible这个函数,导航结束后,也没有把原始的window设置为key.在ios8上没什么问题,但是在ios9上,原始的window就无法

ios实现微信摇一摇功能

微信摇一摇功能大家想必用过- ios SDK帮我们完成了所有功作,我们只需要添加相应的逻辑即可 下面贴出实现代码(在对应的ViewController中添加如下代码): #pragma mark - motion refresh - (BOOL)canBecomeFirstResponder { return YES; } - (void)motionBegan:(UIEventSubtype)motion withEvent:(UIEvent *)event { NSLog(@"开始摇动&qu

iOS摇一摇手机,播放微信摇一摇音效

实现微信摇一摇播放音效,代码如下:- (void)motionBegan:(UIEventSubtype)motion withEvent:(UIEvent *)event{    if (motion == UIEventSubtypeMotionShake) {         NSLog(@"摇一摇,哈哈哈");         [self playSoundEffect:@"yaoyiyao"];    }}-(void)playSoundEffect:(N

ios摇一摇功能

在 UIResponder中存在这么一套方法 - (void)motionBegan:(UIEventSubtype)motion withEvent:(UIEvent *)event __OSX_AVAILABLE_STARTING(__MAC_NA,__IPHONE_3_0); - (void)motionEnded:(UIEventSubtype)motion withEvent:(UIEvent *)event __OSX_AVAILABLE_STARTING(__MAC_NA,__IP

iOS摇一摇的使用

我知道的摇一摇有以下2种方案: 一.直接用系统自带的motionBegan方法 -(void)motionBegan:(UIEventSubtype)motion withEvent:(UIEvent *)event 假如程序不响应此方法,试着加入下面方法: -(BOOL)canBecomeFirstResponder { return YES; } 如果还不行,建议用第二种方法. 二.motionBegan+通知的方法 1.在Appdelegate里写motionBegan方法 -(void)

iOS之摇一摇功能实现

iPhone对摇一摇有很好的支持,总体说来就两步:首先在试图控制器中打开接受摇一摇的开关然后在摇一摇触发的制定的方法中实现你要实现的功能就好. 在 UIResponder中存在这么一套方法 - (void)motionBegan:(UIEventSubtype)motion withEvent:(UIEvent *)event __OSX_AVAILABLE_STARTING(__MAC_NA,__IPHONE_3_0); - (void)motionEnded:(UIEventSubtype)

iOS 摇一摇事件

我知道的摇一摇有以下2种方案: 一.直接用系统自带的motionBegan方法 -(void)motionBegan:(UIEventSubtype)motion withEvent:(UIEvent *)event 假如程序不响应此方法,试着加入下面方法: -(BOOL)canBecomeFirstResponder { return YES; } 如果还不行,建议用第二种方法. 二.motionBegan+通知的方法 1.在Appdelegate里写motionBegan方法 -(void)