第一种
1、在AppDelegate.h中进行如下设置:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
application.applicationSupportsShakeToEdit = YES;
}
2、在你需要对晃动事件进行处理的ViewController中添加如下代码:
-(BOOL)canBecomeFirstResponder {
return YES;
}
-(void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
[self becomeFirstResponder];
}
- (void)viewWillDisappear:(BOOL)animated {
[self resignFirstResponder];
[super viewWillDisappear:animated];
}
- (void)motionEnded:(UIEventSubtype)motion withEvent:(UIEvent *)event
{
if (motion == UIEventSubtypeMotionShake) {
NSLog(@"检测到晃动");
}
}
3、在模拟器中测试晃动,按组合键:Ctrl + Win + Z
第二种:利用UIAccelerometer加速器来检测
- (void)viewDidLoad
{
UIAccelerometer *accelerometer = [UIAccelerometer sharedAccelerometer];
accelerometer.delegate = self;
accelerometer.undateInterval = 1.0f / 60.0f;
}
- (void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceletration *)acceleration
{
if(fabsf(acceleration.x)>2.0||fabsf(acceleration.y>2.0)||fabsf(acceleration.z)>2.0)
{
//NSLog(@"检测到晃动");
}
}
本文介绍了两种实现iOS设备晃动事件检测的方法。第一种通过设置applicationSupportsShakeToEdit属性并在ViewController中处理motionEnded事件;第二种利用UIAccelerometer监听加速度变化。
3271

被折叠的 条评论
为什么被折叠?



