La detección del dispositivo iPhone es plana
-
21-09-2019 - |
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?
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 ...