Pregunta

Para detectar la orientación del teléfono cuando toma una imagen que utilizo

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

Sin embargo, estos funcionan si la imagen se toma desde el lado. ¿Cómo puedo comprobar si el iPhone se inclina hacia abajo para ser plana, por ejemplo, cuando se toma una foto aérea?

¿Fue útil?

Solución

Existe otra constante para la orientación del dispositivo:

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

Puede encontrar aquí: UIDevice Referencia de la Clase

Otros consejos

Tener un vistazo a UIAccelerometer (y UIAccelerometerDelegate) clases que se deben utilizar para detectar los movimientos del dispositivo.
Editar En referencia de clase UIAccelerometer hay enlaces a 3 muestras relacionadas: AccelorometerGraph , y href="http://developer.apple.com/iphone/prerelease/library/samplecode/GLPaint/Introduction/Intro.html" rel="nofollow noreferrer"> GLPaint

hay una aplicación de ejemplo en http://developer.apple.com/iphone que los gráficos en bruto los datos del acelerómetro. Instalarlo en su dispositivo, y echar un vistazo a la clase de datos que se obtiene.

La aplicación de ejemplo viene con una opción (creo que es "amortiguación") que cancela de manera efectiva la gravedad. Usted no quiere hacer esto - de hecho, la gravedad es lo que va a "acelerar" el dispositivo en el eje Z cuando es plana ...

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top