2012-02-10 2 views
5

Encontré un problema en mi proyecto actual, así que configuré una aplicación simple para ver si podía aislar el problema. En mi delegado de aplicación, oculto la barra de estado.Pantalla completa de youtube video, rotación y la barra de estado (iOS)

[application setStatusBarHidden:YES animated:NO]; 

En mi controlador único punto de vista que tienen este código:

- (void)loadVideo 
{ 
    // HTML to embed YouTube video 
    NSString *youTubeVideoHTML = @"<html><head>\ 
    <body style=\"margin:0\">\ 
    <embed id=\"yt\" src=\"%@\" type=\"application/x-shockwave-flash\" \ 
    width=\"%0.0f\" height=\"%0.0f\"></embed>\ 
    </body></html>"; 

    // Populate HTML with the URL and requested frame size 
    NSString *html = [NSString stringWithFormat:youTubeVideoHTML, @"http://www.youtube.com/watch?v=VDRoBnL1gRg", 500, 500]; 

    // Load the html into the webview 
    [self.webview loadHTMLString:html baseURL:nil]; 
} 

La aplicación también se establece en autorrotación.

Ahora, aquí está el problema: cuando reproduzco el video de Youtube, ingrese al modo de pantalla completa, gire el dispositivo 90 grados y pulse "Listo" para salir de la pantalla completa, toda la interfaz permanece desplazada 20px como si estuviera acomodando un estado bar. Noté que al ver un video en pantalla completa, ios agrega una barra de estado, así que supongo que eso es parte del problema. También he visto que el problema ocurre con el reproductor de video nativo.

¿Alguna idea?

Respuesta

0

Si por casualidad está utilizando un UITabBarController, debe instalar esta vista como la raíz de su ventana. A diferencia de otros controladores de vista, nunca se debe instalar una interfaz de barra de pestañas como elemento secundario de otro controlador de vista.

+0

no estoy usando UITabBarController. La aplicación ficticia que creé contiene solo un UIViewController que contiene una UIView que contiene un UIWebView. Gracias por responder. – Michael

0

Para intentar agregar a su info.plist la siguiente clave: UIStatusBarHidden ("La barra de estado está inicialmente oculta") con el valor SÍ.

+0

Lo intenté. Mismo resultado. Gracias por la sugerencia, sin embargo. – Michael

+0

¿Tiene un archivo xib para su UIViewController? Verifique el tamaño de las vistas en el archivo xib. Lo más probable es que su vista principal tenga una altura instalada de 460 px. Debería ser para todo tipo de altura 480. – alexmorhun

1

Tuve un problema similar.

Creé vistas en el guión gráfico. Comprobando Wants full Screen en la sección de diseño de vista la configuración del controlador lo resolvió por mí.

3

Utilicé este método de inserción de YouTube recientemente para mi aplicación Guía del juego: Black Ops 2, y estaba teniendo este problema junto con que se me mostrara el RootViewController al presionar el botón "listo" del reproductor de películas. Al marcar "Quiere pantalla completa" en el controlador raízVolver fijo el cambio de 20 píxeles, y para reparar el controlador raíz que se muestra después de presionar el botón "listo", agregué esto al control raízViewController que estaba agregando un UIViewController (con tableView) como un niño que estaba usando [presentViewControllerAnimated: (BOOL) finalización: nil] para mostrar ViewController con YouTube Video Embed.

Ahora todo funciona a la perfección ... eche un vistazo a la pestaña Videos en mi aplicación si desea ver cómo se comporta.

-(void)viewDidAppear:(BOOL)animated { 
    NSLog(@"Main View viewDidAppear..."); 
    [super viewDidAppear:animated]; 
    [self dismissViewControllerAnimated:YES completion:nil]; 

}

+0

No tengo idea de lo que dice esta respuesta – rigdonmr

Cuestiones relacionadas