English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Soluzione dettagliata del problema di rotazione dello schermo in Android (raccomandato)

Prefazione

Probabilmente avrete incontrato problemi di rotazione dello schermo durante la sviluppo di applicazioni iOS, come desiderare che determinate pagine si girino in diverse direzioni di schermo, ma poiché i metodi forniti dal sistema sono metodi globali del navigatore, non è possibile soddisfare questa esigenza in modo casuale. La soluzione comune è ereditare UINavrgationViewController e sovrascrivere i metodi pertinenti di questa classe, il che, anche se risolve il problema, genera almeno due file inutili e un sacco di codice, il che non è ciò che vogliamo. Di seguito, utilizziamo un metodo più basso per risolvere questo problema.

Principi di base

Modificare dinamicamente il metodo globale UINavrgationViewController, sostituendo i metodi ourselves supportedInterfaceOrientations, shouldAutorotate e gli oggetti del controller del navigatore.

Preparazione

Configurazione delle direzioni di supporto del progetto

Implementazione del codice

Scrivere il seguente metodo nel metodo viewDidLoad del padre di tutti i controller di vista, per configurare la direzione di rotazione dello schermo.

//ottenere_il_metodo_di_sostegno_della_rotazione_dell'orientamento_della_vista_controllore
Method selfMtihod = class_getInstanceMethod([self class], @selector(shouldAutorotate));
//ottenere_il_metodo_di_sostegno_della_rotazione_dell'orientamento_della导航控制器
Method navr = class_getInstanceMethod([self.navigationController class], @selector(shouldAutorotate));
//scambio_metodo
method_exchangeImplementations(selfMtihod, navr);
//Allo stesso modo di seguito
Method selfOrientation = class_getInstanceMethod([self class], @selector(supportedInterfaceOrientations));
Method navrOrientation = class_getInstanceMethod([self.navigationController class], @selector(supportedInterfaceOrientations));
method_exchangeImplementations(selfOrientation, navrOrientation);

Metodo di utilizzo

Sovrascrivere supportedInterfaceOrientations e shouldAutorotate nel padre di classe sopra riportato per rappresentare le proprietà correlate alla rotazione dello schermo di default.

In ogni sottoclasse del controller che tenta di controllare, è possibile sovrascrivere supportedInterfaceOrientations e shouldAutorotate per soddisfare le esigenze di orientamento del visual controller specifico.

Il seguente è un'analisi dettagliata del metodo di risoluzione del problema di rotazione dello schermo di Runtime presentato dall'autore. Spero che sia utile per tutti. Se avete qualsiasi domanda, siete liberi di lasciare un commento, l'autore risponderà prontamente. In questo senso, l'autore desidera ringraziare tutti per il supporto al sito web del tutorial di urla!

Dichiarazione: il contenuto di questo articolo è stato raccolto da Internet, il copyright spetta agli autori originali, il contenuto è stato contribuito e caricato autonomamente dagli utenti di Internet, questo sito non detiene i diritti di proprietà, non è stato editato manualmente e non assume responsabilità legali correlate. Se trovi contenuti sospetti di violazione del copyright, ti preghiamo di inviare una e-mail a notice#oldtoolbag.com (al momento dell'invio dell'e-mail, sostituisci # con @) per segnalare, fornendo prove pertinenti. Una volta verificata, questo sito rimuoverà immediatamente il contenuto sospetto di violazione del copyright.

Ti potrebbe interessare