2010-08-19 12 views
9

HI Sto cercando di ottenere un UITextField simile al campo di ricerca di Google disponibile nell'app safari su iPad. Lo scopo del campo sarà lo stesso (una casella di ricerca).Come posso creare un UITextField più arrotondato? Come il campo di ricerca in Safari su iPad

So che potrei usare un UISearchBar ma dovrei usare il codice di hackish per eliminare l'icona della lente di ingrandimento e lo sfondo e non lo voglio.

Allego un'immagine con il campo di testo utilizzato da Apple come casella di ricerca. Come posso modificare un UITextField per apparire e comportarmi come il campo di ricerca in questo screenshot? alt text

Ho provato a modificare la proprietà arrotondata del layer di UITextField ma questo non funziona come previsto.

Qualsiasi aiuto è molto apprezzato!

Grazie!

+0

giocando intorno con roundedCorners, hai fatto in modo che aver aggiunto il framework quartzcore e ha importato i file header necessari nella sottoclasse ViewController? – samsam

risposta

-4

Utilizzare un grafico con i bordi arrotondati desiderati e quindi posizionare una vista testo in alto.

+0

Grazie per la risposta, ma non penso che Apple abbia usato qualcosa di simile quando hanno costruito quella funzionalità. –

0

Perché non provare a fare un trucco con un'immagine separata del campo di input necessario e posizionandolo sotto il controllo TextField reale. Tuttavia dovrai manipolare i colori del campo di testo che stai posizionando per renderlo trasparente.

17

È possibile impostare il raggio dell'angolo su qualsiasi sottoclasse UIView.

  1. Aggiungere il QuartzCore.framework al progetto
  2. aggiungere #import <QuartzCore/QuartzCore.h> nel vostro UIViewController sottoclasse (dove si ha accesso all'istanza UITextField di vostra scelta
  3. entro viewDidLoad/viewWillAppear (o in qualsiasi altro luogo in cui il vostro UITextField è giá istanziato chiamata [yourTextField.layer setCornerRadius:14.0f];
  4. gioco intorno con il valore cornerRadius fino a che non guarda bene
+0

Mentre questo è un ottimo metodo per ottenere angoli arrotondati, non si otterrà l'esatto aspetto e sensazione che sta mostrando. Nello specifico, le ombre. –

3

Set sfondo prope rty di UITextField a un'immagine appropriata, come questo: alt text

+0

In questo caso se l'allineamento è impostato a destra o a sinistra, il testo si posizionerà troppo vicino al lato. – Shmidt

10

Utilizzare il seguito code.It funziona per me:

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]; 
Problemi correlati