检测iPhone设备是否持平

时间:2010-02-18 06:45:37

标签: iphone camera uiimagepickercontroller orientation accelerometer

在拍照时检测手机的方向我使用

orientation == UIDeviceOrientationLandscapeRight
orientation == UIDeviceOrientationPortraitUpsideDown
orientation == UIDeviceOrientationPortrait
orientation == UIDeviceOrientationLandscapeLeft

但如果从侧面拍摄照片,这些工作。如何检查iPhone是否向下倾斜为平坦的,例如拍航拍时?

3 个答案:

答案 0 :(得分:4)

它存在于设备方向的其他常量:

typedef enum {
   UIDeviceOrientationUnknown,
   UIDeviceOrientationPortrait,
   UIDeviceOrientationPortraitUpsideDown,
   UIDeviceOrientationLandscapeLeft,
   UIDeviceOrientationLandscapeRight,
   UIDeviceOrientationFaceUp,
   UIDeviceOrientationFaceDown
} UIDeviceOrientation;

您可以在此处找到它们:UIDevice Class Reference

答案 1 :(得分:1)

查看必须用于检测设备移动的UIAccelerometer(和UIAccelerometerDelegate)类。
修改:在UIAccelerometer类引用中,有3个相关示例的链接:AccelorometerGraphGLGravityGLPaint

答案 2 :(得分:0)

http://developer.apple.com/iphone上有一个示例应用程序,用于显示加速度计的原始数据。将其安装在您的设备上,并查看您获得的数据类型。

示例应用程序附带一个选项(我认为它是“阻尼”),可有效抵消重力。你不想这样做 - 事实上,重力是你的设备在Z轴上“加速”它会“加速”...