iOS 摇一摇功能

今天查看苹果的API文档,突然发现摇一摇功能iOS有自带,灰常欣喜,记录一下。

在UIResponder中存在着这么一套方法:

//检测到摇动
- (void)motionBegan:(UIEventSubtype)motion withEvent:(nullable UIEvent *)event NS_AVAILABLE_IOS(3_0);
//摇动结束
- (void)motionEnded:(UIEventSubtype)motion withEvent:(nullable UIEvent *)event NS_AVAILABLE_IOS(3_0);
//摇动取消
- (void)motionCancelled:(UIEventSubtype)motion withEvent:(nullable UIEvent *)event NS_AVAILABLE_IOS(3_0);

具体实现就是:

1.让viewcontroller支持摇动;

2.让viewcontroller成为第一响应者;

3.实现上面这几个方法。

代码如下:

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    
    //让viewcontroller支持摇动
    [[UIApplication sharedApplication] setApplicationSupportsShakeToEdit:YES];
    //让viewcontroller成为第一响应者
    [self becomeFirstResponder];
}

- (BOOL)canBecomeFirstResponder {
    return YES;
}

#pragma mark -
#pragma mark --支持摇动--
- (void)motionBegan:(UIEventSubtype)motion withEvent:(UIEvent *)event
{
    NSLog(@"摇动开始");
    AudioServicesPlaySystemSound(kSystemSoundID_Vibrate);
    
//    添加手机响铃的方法
    SystemSoundID soundId;
    
    NSString *path = [[NSBundle mainBundle]pathForResource:@"song" ofType:@"wav"];
    
    AudioServicesCreateSystemSoundID((__bridge CFURLRef)[NSURL fileURLWithPath:path], &soundId);
    
    AudioServicesPlaySystemSound(soundId);
}

- (void)motionCancelled:(UIEventSubtype)motion withEvent:(UIEvent *)event
{
    NSLog(@"摇动取消");
}

- (void)motionEnded:(UIEventSubtype)motion withEvent:(UIEvent *)event
{
    if (event.subtype == UIEventSubtypeMotionShake) {
         NSLog(@"摇动结束");
    }
}
Demo地址: https://github.com/KityPei/MotionDemo.git

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值