Domanda

Per rilevare l'orientamento del telefono quando si scatta una foto che uso

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

Ma questi funzionano se l'immagine è stata presa dal lato. Come posso controllare se l'iPhone è inclinato verso il basso per essere ad esempio piatta quando si scatta un'immagine aerea?

È stato utile?

Soluzione

Esiste altra costante per l'orientamento del dispositivo:

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

Li potete trovare qui: UIDevice Class Reference

Altri suggerimenti

Date un'occhiata al UIAccelerometer (e UIAccelerometerDelegate) classi che devono essere utilizzati per rilevare i movimenti del dispositivo.
Modifica In riferimento UIAccelerometer classe ci sei collegamenti a 3 campioni correlati: AccelorometerGraph , GLGravity e GLPaint

c'è un'applicazione di esempio su http://developer.apple.com/iphone che i grafici grezzo i dati dall'accelerometro. Installarlo sul vostro dispositivo, e hanno uno sguardo al tipo di dati che si ottiene.

L'applicazione di esempio viene fornito con un'opzione (credo che sia "smorzamento"), che annulla efficacemente gravità. Non si vuole fare questo - di fatto gravità è quello che sta succedendo di "accelerare" il dispositivo lungo l'asse Z quando è piatto ...

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top