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

Détails de la résolution du problème de rotation d'écran dans Android avec Runtime (recommandé)

Préambule

Il est possible que vous ayez souvent rencontré des problèmes de rotation d'écran dans le développement d'applications iOS, par exemple, espérer que les pages spécifiées effectuent différentes rotations d'écran, mais en raison des méthodes fournies par le système qui sont des méthodes globales de l'assistant de navigation, il est impossible d'atteindre cette demande de manière arbitraire. La solution générale consiste à hériter de UINavrgationViewController et à réécrire les méthodes de cette classe, bien que cela puisse résoudre le problème, mais au moins deux fichiers supplémentaires et beaucoup de code sont générés pendant le processus de réécriture, ce qui n'est certainement pas ce que nous voulons. Voici une méthode plus basique pour résoudre ce problème.

Principe de base

Changer dynamiquement la méthode globale de UINavrgationViewController, remplacez simplement les méthodes ourselves supportedInterfaceOrientations, shouldAutorotate et les méthodes de l'assistant de navigation.

Préparation des travaux

Configurer les directions de support du projet

Mise en œuvre du code

Écrivez le méthode ci-dessous dans la méthode viewDidLoad du parent de tous les assistants de vue, vous pouvez configurer la direction de rotation de l'écran.

//Obtenir la méthode de rotation de l'assistant de vue actuelle
Method selfMtihod = class_getInstanceMethod([self class], @selector(shouldAutorotate));
//Obtenir la méthode de rotation de l'assistant de navigation actuelle
Method navr = class_getInstanceMethod([self.navigationController class], @selector(shouldAutorotate));
//Exchange methods
method_exchangeImplementations(selfMethod, navr);
//The same as above
Method selfOrientation = class_getInstanceMethod([self class], @selector(supportedInterfaceOrientations));
Method navrOrientation = class_getInstanceMethod([self.navigationController class], @selector(supportedInterfaceOrientations));
method_exchangeImplementations(selfOrientation, navrOrientation);

Usage method

Overwrite supportedInterfaceOrientations, shouldAutorotate in the above parent class to indicate the default screen rotation-related properties.

In each subclass of the controller to be controlled in the future, you can overwrite the supportedInterfaceOrientations, shouldAutorotate methods to complete the requirements for specifying the view controller orientation.

The above-mentioned is the detailed explanation of the method of solving the screen rotation problem of Runtime introduced by the editor to everyone. I hope it will be helpful to everyone. If you have any questions, please leave me a message, and the editor will reply to you in time. At the same time, I would also like to express my sincere gratitude to everyone for their support of the Yell Tutorial website!

Declaration: The content of this article is from the Internet, and the copyright belongs to the original author. The content is contributed and uploaded by Internet users spontaneously. This website does not own the copyright, has not been manually edited, and does not assume any relevant legal liability. If you find any content suspected of copyright infringement, please send an email to: notice#oldtoolbag.com (when sending an email, please replace # with @ to report abuse, and provide relevant evidence. Once verified, this site will immediately delete the content suspected of infringement.)

Vous pourriez aussi aimer