2012-12-16 11 views
9

Ho fatto alcuni esperimenti con una fotocamera personalizzata utilizzando AVFoundation e finora tutto è stato grandioso. L'esempio di AVCam mi ha portato molto lontano e sono abbastanza soddisfatto dei risultati.Mimando rotazione fotocamera iOS 6

Tuttavia, una cosa che ancora non ottengo è come l'app Camera iOS predefinita gestisce le rotazioni. Sembra che lo sfondo non ruoti affatto ma tutti i controlli di sovrapposizione lo facciano.

Questa probabilmente non è una domanda specifica per la videocamera, ma come posso ottenere questo comportamento?

TLDR: disporre di un livello di sfondo della videocamera, controlli in alto, come ruotare i controlli senza ruotare il livello di sfondo?

+1

Si potrebbe sovrascrivere 'willAnimateRotationToInterfaceOrientation: Durata:' e manualmente ridimensionare tutti i controlli. Potrebbe essere necessario un po 'di perfezionamento per ottenere l'effetto desiderato, ma ha sempre funzionato per me. http://developer.apple.com/library/ios/#documentation/uikit/reference/UIViewController_Class/Reference/Reference.html – Greg

+0

In alternativa, è possibile adottare l'approccio hackish e inserire la vista della telecamera nella 'UIWindow' radice del app, e impostare lo sfondo del controller della vista con i controlli su trasparente, in modo che il controller della vista ruoti ma la finestra no, e la vista della telecamera nella finestra è visibile dietro di essa. – Greg

+0

Il tuo primo suggerimento è stato il mio pensiero iniziale, probabilmente ci andrò. Il secondo ha vinto il lavoro su iOS6 e verso l'alto perché le capacità di rotazione delle viste dei bambini devono essere un sottoinsieme appropriato delle funzionalità di rotazione dei genitori. – defer

risposta

1

Me lo chiedo lo stesso ...

La mia ipotesi è che la fotocamera nativa viewController non ruota utilizzando il meccanismo di rotazione UIViewController

  • nessuna rotazione barra di stato
  • nessuna rotazione "di base" delle visualizzazioni secondarie - la barra degli strumenti non si muove, i pulsanti sono animati
  • e, naturalmente, la vista contenente l'anteprima della fotocamera non ruota :)

Piuttosto deve chiamare [UIDevice beginGeneratingDeviceOrientationNotifications] e gestire specifico aggiornamento UI (grigio pulsanti dissolvenza commutazione posizione, e la barra pulsanti rotazione immagine)

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(yourUpdateMethodForRotation:) notificationName: UIDeviceOrientationDidChangeNotification];