2010-05-06 17 views
7

Al girar una vista desde UIInterfaceOrientationPortrait a UIInterfaceOrientationPortraitUpsideDown en el simulador de iPad, hay un borde blanco a un lado de la vista (consulte diagram, esquina inferior izquierda de la imagen). El borde blanco muestra solo en un lado, pero no en el lado opuesto. ¿Cómo puedo prevenirlo (ocultarlo)? ¡Gracias!Borde blanco molesto al girar una vista en iPad

Respuesta

16

Esta es una suposición:

Es posible que uno de sus puntos de vista tiene un backgroundColor establece en blanco, y está completamente cubierto por otro punto de vista. Durante una rotación, quizás los errores de punto flotante causen que un borde se muestre ligeramente a través de ese borde.

Para investigar este caso, puede usar el método no documentado [UIView recursiveDescription] para obtener una vista rápida de su jerarquía de vistas (no es necesario enviar código con ese método, solo es para la depuración). Una vez que sabe lo que son vistas cerca de la parte inferior, puede imprimir sus backgroundColors, o simplemente establece que todos ellos [UIColor clearColor].

Además, supongo que ya lo sabe, pero que puede ser útil para establecer window.backgroundColor = [UIColor clearColor] en el inicio de tu código!

+1

Gracias Tyler! window.backgroundColor = [UIColor clearColor]; ¡¡trabajos!! – ohho

+0

¡Gracias! Esto funciona perfectamente! – nonamelive

+1

+1 window.backgroundColor = [UIColor clearColor]; también funciona para mí :) – matm

0

Tuve el mismo problema. Vi que en Interface builder autosizing para la vista no se pudo habilitar. Eliminé .xib y lo recreé asegurándome de que el producto estuviera configurado en "ipad" al crear el archivo (agregue un nuevo archivo en xcode).

0

También puede establecer el color de fondo en nil. De la documentación de UIView para backgroundColor:

El valor predeterminado es nulo, lo que da como resultado un fondo transparente color.

UIWindow hereda de UIView, por lo que esto también funciona. Probablemente sea una buena idea usar nil, en caso de que [UIColor clearColor] no siempre sea la mejor manera de hacerlo.

Lo curioso es que tengo un proyecto sin puntas, así que creo la ventana UI en el código, pero el color de fondo era blanco antes de establecerlo en cero. es el color de fondo predeterminado de un UIWindow blanco creado por programa?

Cuestiones relacionadas