iOS 摇一摇事件

我知道的摇一摇有以下2种方案:

一、直接用系统自带的motionBegan方法

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

假如程序不响应此方法,试着加入下面方法:

-(BOOL)canBecomeFirstResponder

{

  return YES;

}

如果还不行,建议用第二种方法。


二、motionBegan+通知的方法

1.在Appdelegate里写motionBegan方法

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

{

[[NSNotificationCenter defaultCenter]postNotificationName:@"shake" object:self];

}

2.在需要接收通知的页面添加通知

[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(shakeAction) name:@"shake" object:nil];

写在viewDidLoad里即可。

这里的shakeAction就是摇一摇需要调用的方法,自己修改,通知名字对应就好,可自由修改。

三.补充摇一摇的其他方法

/** 摇一摇结束(需要在这里处理结束后的代码) */
- (void)motionEnded:(UIEventSubtype)motion withEvent:(UIEvent *)event
{
    // 不是摇一摇运动事件
    if (motion != UIEventSubtypeMotionShake) return;
    
    NSLog(@"motionEnded");
}

/** 摇一摇取消(被中断,比如突然来电) */
- (void)motionCancelled:(UIEventSubtype)motion withEvent:(UIEvent *)event
{
    NSLog(@"motionCancelled");
}

转载于:https://www.cnblogs.com/cai-rd/p/4428696.html

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值