Device Motion 拓展功能

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);
}];
}
加速度计拓展功能

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开发频道。










