当前位置: 代码迷 >> Iphone >> iphone摇动检测的两种方式
  详细解决方案

iphone摇动检测的两种方式

热度:23   发布时间:2016-04-25 06:14:06.0
iphone晃动检测的两种方式

第一种

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(@"检测到晃动");    }}
?

?

?

?

  相关解决方案