iOS CoreMotion实现设备运动加速度计陀螺仪

2020-01-21 03:10:15王旭


Device Motion 拓展功能

iOS,CoreMotion,陀螺仪,加速度计


CMMotionManager *manager = [[CMMotionManager alloc] init];
  
if ([manager isDeviceMotionAvailable] && ![manager isDeviceMotionActive]){
 
  manager.deviceMotionUpdateInterval = 0.01f;
  [manager startDeviceMotionUpdatesToQueue:[NSOperationQueue mainQueue]
               withHandler:^(CMDeviceMotion *data, NSError *error) {
                 double rotation = atan2(data.gravity.x, data.gravity.y) - M_PI;
                 self.imageView.transform = CGAffineTransformMakeRotation(rotation);
               }];
}

加速度计拓展功能

iOS,CoreMotion,陀螺仪,加速度计


CMMotionManager *manager = [[CMMotionManager alloc] init];
manager.accelerometerUpdateInterval = 0.1;
  
if ([manager isAccelerometerAvailable] && ![manager isAccelerometerActive]){
    
  NSOperationQueue *queue = [[NSOperationQueue alloc] init];
  [manager startAccelerometerUpdatesToQueue:queue
                 withHandler:^(CMAccelerometerData *accelerometerData, NSError *error)
   {
     CMAcceleration acceleration = accelerometerData.acceleration;
       
     if (acceleration.x < -2.0) {
       dispatch_async(dispatch_get_main_queue(), ^{
         [self.navigationController popViewControllerAnimated:YES];
       });
     }
   }];
}

上述代码, Demo地址

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持ASPKU。


注:相关教程知识阅读请移步到IOS开发频道。