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

Detalles de solución del problema de rotación de pantalla en Android mediante Runtime (recomendado)

Introducción

Tal vez todos hemos enfrentado problemas de rotación de pantalla en el desarrollo de aplicaciones iOS, por ejemplo, queremos que las páginas específicas se roten de diferentes maneras, pero debido a que los métodos proporcionados por el sistema son métodos globales del controlador de navegación, no podemos alcanzar esta necesidad de manera arbitraria. La solución general es heredar UINavrgationViewController y reescribir los métodos de esta clase, aunque también podemos resolver el problema, al menos dos archivos adicionales y mucho código se generan en el proceso de reescritura, lo que obviamente no es lo que queremos. A continuación, utilizaremos un método más básico para resolver este problema.

Principios básicos

Cambiar dinámicamente el método global de UINavrgationViewController, sustituyendo los métodos ourselves de supportedInterfaceOrientations, shouldAutorotate y los métodos del objeto del controlador de navegación.

Preparativos

Configuración de la orientación de soporte del proyecto

Implementación del código

Escriba el siguiente método en el método viewDidLoad del padre de todos los controladores de vista, y puede configurar la dirección de rotación de la pantalla.

//Obtener el método de soporte de rotación del controlador de vista actual
Method selfMtihod = class_getInstanceMethod([self class], @selector(shouldAutorotate));
//Obtener el método de soporte de rotación del controlador de navegación actual
Method navr = class_getInstanceMethod([self.navigationController class], @selector(shouldAutorotate));
//Intercambio de métodos
method_exchangeImplementations(selfMtihod, navr);
//Los siguientes son iguales
Método selfOrientation = class_getInstanceMethod([self class], @selector(supportedInterfaceOrientations));
Método navrOrientation = class_getInstanceMethod([self.navigationController class], @selector(supportedInterfaceOrientations));
method_exchangeImplementations(selfOrientation, navrOrientation);

Método de uso

Se sobrescribe supportedInterfaceOrientations y shouldAutorotate en la clase padre para representar las propiedades relacionadas con la rotación de pantalla por defecto.

En cada subclase del controlador que intenta controlar, se puede sobrescribir supportedInterfaceOrientations y shouldAutorotate para completar los requisitos de orientación del controlador de vista.

El siguiente es un análisis detallado de los métodos para resolver problemas de rotación de pantalla en Runtime que les ha presentado el editor. Esperamos que les sea útil. Si tienen alguna pregunta, no dudes en dejarme un mensaje, y me pondré en contacto con ustedes a la brevedad. ¡También agradecemos mucho el apoyo de todos a la página web de Tutorial de Gritos!

Declaración: El contenido de este artículo se ha obtenido de la red y pertenece al propietario original. El contenido ha sido contribuido y subido por usuarios de Internet de manera autónoma. Este sitio web no posee los derechos de propiedad y no ha realizado una edición humana, ni asume ninguna responsabilidad legal. Si encuentra contenido sospechoso de infracción de derechos de autor, por favor envíe un correo electrónico a: notice#w.3Aviso: El contenido de este artículo se ha obtenido de la red, y los derechos de autor pertenecen al propietario original. El contenido ha sido subido por usuarios de Internet de manera autónoma y el sitio web no posee los derechos de propiedad. No se ha realizado una edición humana y no se asume ninguna responsabilidad legal. Si encuentra contenido sospechoso de infracción de derechos de autor, por favor envíe un correo electrónico a: notice#w proporcionando evidencia relevante. Una vez confirmada la infracción, el sitio web eliminará inmediatamente el contenido sospechoso.

Elasticsearch Tutorial