La mia app ha un controller di visualizzazione che non può cambiare orientamento. Pensalo come un campo da gioco che deve rimanere fisso sul posto.Forzare UIActionSheet per utilizzare un orientamento specifico
Ora desidero creare un UIActionSheet, ma dato il modo in cui l'utente ha in mano il dispositivo, vorrei abbinare il foglio all'orientamento.
Sembra che l'UIActionSheet, a differenza, ad esempio, il MFComposerViewController, non ottiene il suo orientamento dalla StatusBar, che sto rotante sulla base dell'orientamento, ma ottiene il suo orientamento dal controller della vista sottostante. In altre parole, UIActionSheet viene visualizzato con orientamento verticale, indipendentemente da come viene tenuto il dispositivo.
ho provato:
CGAffineTransform t = CGAffineTransformMakeRotation(lastUIAngle);
[actionSheet setTransform:t];
if (UIInterfaceOrientationIsLandscape(lastOrientation))
actionSheet.frame = CGRectMake(0, 0, 480, 320);
else
actionSheet.frame = CGRectMake(0, 0, 320, 480);
actionSheet.center = self.view.center;
E riesco a ottenere il giusto orientamento, ma il foglio azione risultante esce dal lato ritratto, ed è dimensionata come se fosse ancora in orientamento verticale. Il frame del foglio di azione viene calcolato in base al numero di pulsanti, ecc.
Qualcuno è riuscito a forzare UIActionSheet a visualizzare correttamente in un orientamento specificato?
(Ho anche provato a creare una nuova vista, che è stata trasformata e aveva le dimensioni corrette, ma UIActionSheet lo ha ignorato.quel che rimane è creare un nuovo UIViewController che ruota automaticamente e UIActionSheet ne è figlio. , ciò significa che il mio campo di gioco viene completamente oscurato dal nuovo controller di visualizzazione.)
non funziona per me in iOS 6 – SpaceDog
Hai ragione. iOS 6 ha rotto questo. Sto cercando una soluzione. – mahboudz
iOS 6 ha rotto un sacco di cose, ad esempio l'autorotazione, specialmente se si compila per 4.x ed eseguito su un dispositivo 6.x.Alcune app semplicemente non eseguono l'autorotazione come previsto. Probabilmente il problema con il tuo codice si rompe e questa roba autorotato ha qualche relazione. – SpaceDog