2011-02-23 9 views

Respuesta

20

Probablemente desee utilizar las propiedades background y borderStyle de UITextField. Configurando borderStyle como UITextBorderStyleNone y creando una imagen de fondo personalizada para estirar y usar como la propiedad background sería un enfoque.

Sugiero echar un vistazo a esas propiedades en el UITextField class reference.

2

sólo tiene que utilizar la siguiente línea y debería funcionar

textfield_name.background = [UIImage imageNamed: @ "yourImage.png"];

aquí "yourImage" es la imagen de fondo que desea poner en ...

sin embargo, esto sólo funcionará si el botón tampoco un RoundRect button.So, puede cambiar el tipo del botón de el Interface Builder o puede utilizar

textfield_name.borderstyle = UITextBorderStyleNone o UITextBorderStyleBezel

y que r gud2go ....!

2

Tome una vista uiimageview establezca su propiedad de imagen en la imagen que desea como fondo de uitextfield. Y encima de este uiimageview coloque un uitextfield con borderstyle none. Esto lo puedes hacer directamente en el constructor de interfaz.

30

Esto se puede hacer mucho mejor y más simple con una imagen estirable:

UIImage *fieldBGImage = [[UIImage imageNamed:@"input.png"] stretchableImageWithLeftCapWidth:20 topCapHeight:20]; 
    [myUITextField setBackground:fieldBGImage]; 

Piense en el fondo del campo de texto como dividido en tres secciones. Una sección central que puede estirarse y tapones en los extremos. Cree una imagen que solo tenga que ser lo suficientemente larga para contener un píxel de esta sección repetitiva (un campo de texto muy corto) y luego cree una imagen estirable a partir de ella usando stretchableImageWithLeftCapWidth: topCapHeight. Pase el ancho de la tapa del extremo izquierdo a 'leftCapWidth'. También puede hacer que se estire verticalmente, pero si su imagen de fondo tiene la misma altura que su cuadro de texto, no tendrá ningún efecto.

Si está familiarizado con la escala de 9 divisiones en Flash o Illustrator, es exactamente el mismo concepto, excepto que las secciones intermedias tienen solo un píxel de ancho/alto.

La ventaja de esto es que no tiene que preocuparse de que varios objetos en capas escalen juntos y puede cambiar el tamaño de los campos de texto en cualquier momento y el fondo se mantendrá intacto. ¡Funciona en otros elementos también!

+0

Trabaja para mí gracias. –

17

Usted puede hacer esto por:

yourTextField.borderStyle = UITextBorderStyleNone; 

yourTextField.background = [UIImage imageNamed:@"email-input.png"]; 

Y si usted quiere dar margen a su texto dentro del campo de texto, se puede hacer esto por:

// Setting Text Field Margins to display the user entered text Properly 

UIView *paddingView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 5, 20)]; 

yourTextField.leftView = paddingView; 
yourTextField.leftViewMode = UITextFieldViewModeAlways; 
7

También puede hacerlo a través de Interface Builder.

Through Interface Builder