2010-08-19 16 views
9

HI Estoy intentando que un UITextField se vea como el campo de búsqueda de Google disponible en la aplicación safari en el iPad. El propósito del campo será el mismo (un cuadro de búsqueda).¿Cómo puedo hacer un UITextField más redondeado? Al igual que el campo de búsqueda en Safari en el iPad

Sé que podría usar un UISearchBar, pero tendría que usar código de hack para eliminar el icono de la lupa y el fondo y no quiero eso.

Estoy adjuntando una imagen con el TextField utilizado por apple como su cuadro de búsqueda. ¿Cómo puedo modificar un UITextField para que se vea y se comporte como el campo de búsqueda en esta captura de pantalla? alt text

Traté de modificar la propiedad roundedCorners de capa de UITextField, pero esto no funciona como se esperaba.

¡Toda ayuda es muy apreciada!

¡Gracias!

+0

mientras que jugando con roundedCorners, ¿hizo seguro de que ha agregado la Quartzcore Framework e importó los archivos de encabezado necesarios en su subclase ViewController? – samsam

Respuesta

-4

Utilice un gráfico con los bordes redondeados que desee y coloque una vista de texto en la parte superior.

+0

Gracias por responder, pero no creo que Apple haya usado algo así cuando crearon esa funcionalidad. –

0

¿Por qué no intentas un truco haciendo una imagen separada del campo de entrada que necesitas y colocándola bajo el control real del campo de texto? Sin embargo, tendrá que manipular los colores del campo de texto que está colocando para hacerlo transparente.

17

Puede establecer Corner-Radius en cualquier UIView-Subclass.

  1. Añadir la QuartzCore.framework a su proyecto
  2. añadir #import <QuartzCore/QuartzCore.h> en su UIViewController Subclase (donde se tiene acceso a la instancia UITextField de su elección
  3. dentro viewDidLoad/viewWillAppear (o cualquier otro lugar donde su UITextField se crea una instancia llamada allready [yourTextField.layer setCornerRadius:14.0f];
  4. jugar con el valor CornerRadius hasta que se ve bien
+0

Si bien este es un excelente método para obtener esquinas redondeadas, no obtendrá el aspecto y la sensación exactos que está mostrando. Específicamente, las sombras. –

3

Conjunto de fondo prope rty de UITextField a una imagen adecuada, como éste: alt text

+0

En este caso, si la alineación se establece a la derecha o a la izquierda, el texto quedará demasiado cerca del lateral. – Shmidt

10

Utilizar el siguiente code.It funciona para mí:

searchField= [[UITextField alloc] initWithFrame:CGRectMake(0,0,150,31)]; 
searchField.delegate = self; 
searchField.autoresizingMask = UIViewAutoresizingFlexibleWidth; 
searchField.textColor = [UIColor colorWithRed:102.0/255 green:102.0/255 blue:102.0/255 alpha:1.0]; 
searchField.textAlignment = UITextAlignmentLeft; 
searchField.font = [UIFont fontWithName:@"Helvetica" size:15]; 
searchField.autocorrectionType = UITextAutocorrectionTypeNo; 
searchField.contentVerticalAlignment =UIControlContentVerticalAlignmentCenter; 
searchField.clearsOnBeginEditing = NO; 
searchField.autocapitalizationType = UITextAutocapitalizationTypeNone; 
searchField.autocorrectionType = UITextAutocorrectionTypeNo; 
searchField.keyboardType = UIKeyboardTypeURL; 
searchField.returnKeyType = UIReturnKeySearch;   
searchField.clearButtonMode = UITextFieldViewModeWhileEditing; 
searchField.rightViewMode = UITextFieldViewModeUnlessEditing; 
searchField.layer.cornerRadius = 17; 
[email protected]"Google Search"; 
searchField.borderStyle = UITextBorderStyleRoundedRect;//To change borders to rounded 
searchField.layer.borderWidth = 1.0f; //To hide the square corners 
searchField.layer.borderColor = [[UIColor grayColor] CGColor]; //assigning the default border color 
UIBarButtonItem *searchFieldItem = [[UIBarButtonItem alloc] initWithCustomView:searchField]; 
Cuestiones relacionadas