我如何必须在objective-c中使用加速度计/陀螺仪才能确定是否......
A) 将 iPhone 放在用户面前,即“向上”或
B) 例如,iPhone 已放在桌子上,即显示屏朝上。
我如何必须在objective-c中使用加速度计/陀螺仪才能确定是否......
A) 将 iPhone 放在用户面前,即“向上”或
B) 例如,iPhone 已放在桌子上,即显示屏朝上。
您需要阅读UIAcceleration 类参考并注意重力始终存在。因此,当 iPhone 垂直(并保持稳定)时,您将沿 y 轴读取 1g。当它平放在桌子上时,您将沿 z 轴读取 1g
首先符合<UIAccelerometerDelegate>
然后你可以使用这些方法:
#pragma mark --- Acceleration Start and Stop ----------------------------
-(void)startMeasuringAcceleration{
NSLog(@"Started Measuring Acceleration");
[[UIAccelerometer sharedAccelerometer] setUpdateInterval:1];//update interval (1s at moment)
[[UIAccelerometer sharedAccelerometer] setDelegate:self];
}
-(void)stopMeasuringAcceleration{
[[UIAccelerometer sharedAccelerometer] setDelegate:nil];
}
#pragma mark UIAcceleromete Delegate Methods-----------------------------------------------
- (void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration{
NSLog(@"%f, %f, %f, %f", acceleration.x, acceleration.y, acceleration.z, acceleration.timestamp);
}
测量 X、Y 和 Z。Z 是屏幕上的轴,Y 从上到下,X 从左到右。
在 viewDidLoad 调用[self startMeasuringAcceleration]
开始
希望有帮助。
您需要读取加速度计的 z 坐标值。
您不应该使用 UIAccelerometerDelegate,因为它自 iOS 5.0 以来已被弃用。从 iOS 4 开始,它被使用传感器融合的更可靠的 Core Motion 框架所取代。
所以看看:
为什么加速计:didAccelerate:在 IOS5 中已弃用?
按照 Apple 文档内部的链接