2011-11-02 18 views
8

En mi aplicación tengo un UITextField que se encuentra encima de una imagen de fondo. En iOS 4 tuve que establecer la propiedad backgroundColor en 'clearColor' para que se vea bien. Bajo iOS 4 el campo de texto se parece a esto ...UITextField cambio de comportamiento de fondo de iOS 4 a iOS 5

enter image description here

Así es como yo quiero que se vea. Ahora, ya que la actualización a Xcode 4.3 (iOS 5) cuando vuelva a ejecutar el mismo proyecto, la caja se parece a esto ...

enter image description here

Grrr. Entonces, en iOS 5 cambié la propiedad backgroundColor a 'whiteColor' y funciona bien. Sin embargo ahora, bajo iOS 4.x la caja se parece a esto ...

enter image description here

Nota las esquinas blancas feas! Entonces, por favor, ¿alguien puede decirme qué debería hacer aquí para que se vea normal tanto en iOS 4 como en iOS 5 (es decir, para parecerse a la primera imagen).

Muchas gracias, Simon

+2

¿Has reconstruido con el SDK actualizado? – BoltClock

+1

Solo para saberlo ... intente importar QuartzCore y establezca textField.layer.backgroundColor = [UIColor clearColor] .CGColor; ? – Mat

+1

No tengo idea de lo que está sucediendo aquí, pero ahora está funcionando. Eliminé la línea para establecer la propiedad backgroundColor y todo parece estar bien en 4 y 5. Tengo – Simon

Respuesta

3

Tengo el mismo problema hace unos días. Para resolver esto, simplemente configuro borderStyle y comento la línea backgroundColor. Todo funciona bien, tanto iOS4 como iOS5.

// textField.backgroundColor = [UIColor clearColor]; // just leave it, dont't set 
textField.borderStyle = UITextBorderStyleRoundedRect; 
+0

He marcado esto como correcto ya que estoy bastante seguro de que esto es lo que también lo solucionó, pero honestamente no puede ser 100%, ya que es un problema vago. – Simon

+0

Esta fue la respuesta correcta para mí también. Hice este cambio único y mi problema se resolvió, en todas las pruebas iOS 4.3 hasta 5.1. (El problema en mi proyecto fue exactamente como se describe en la publicación original). – Douglas

1

A veces es posible que tenga que reconstruir su proyecto. Además, intente hacer esto en un proyecto completamente nuevo para ver si realmente se trata de un nuevo cambio en Xcode, o si es solo ese proyecto en particular para reducir las cosas. Si a continuación, lo aísla como si fuera un problema con su proyecto en particular, intente "hacerlo de nuevo" para ver si hace clic. Pero veo lo resolvió: =)

2

Esto es lo que hice para resolver este problema, puede comprobar la versión de IOS que se ejecutan en el dispositivo y hacer el manejo en consecuencia, como este

float version = [[[UIDevice currentDevice]systemVersion]floatValue]; 
if(version < 5.0) 
{ 
//user clear color 
}else 
{ 
//use white color 
} 

Esperanza esto te ayuda