2013-04-11 20 views
14

Sto cercando di personalizzare il font di UISearchBar tramite il proxy di aspetto. Funziona, ma in qualche modo, il testo segnaposto non è centrato verticalmente. Ho provato a impostare la proprietà di allineamento verticale; il testo segnaposto sarebbe centrato ma il testo inserito sarebbe leggermente al di sotto della linea centrale ... C'è un modo per risolvere questo problema?Testo segnaposto disallineato in UITextField di UISearchBar

Edit: codice che ho usato per aggiungere carattere personalizzato:

[[UITextField appearanceWhenContainedIn: [UISearchBar class], nil] 
           setFont: [UIFont customFontWithSize: 17]]; 

placeholder text

normal text

+0

come stai impostando il segnaposto ??? – Kasaname

+0

mostra il codice che stai utilizzando per impostare l'aspetto e il segnaposto –

+0

http://stackoverflow.com/questions/5526047/uisearchbar-display-bug-text-too-far-left-overlapping-the-magnifying-glass- ico – iPatel

risposta

0

È necessario impostare l'allineamento del textField all'interno della barra di ricerca. Ottieni il campo di testo dalle sottoview della barra di UISearch e imposta semplicemente il suo allineamento al centro. Prova il codice di esempio qui sotto.

- (void)viewDidLoad 
{ 
    for (UITextField *txt in _searchbar.subviews) { 
     if ([txt isKindOfClass:[UITextField class]]) { 
      [txt setTextAlignment:NSTextAlignmentCenter]; 
     } 
    } 
    [super viewDidLoad]; 
    // Do any additional setup after loading the view, typically from a nib. 
} 

qui _searchbar è l'uscita di UISearchBar.

0
- (void)viewDidLoad 
{ 

    for (UITextField *txt in search.subviews) { 
     if ([txt isKindOfClass:[UITextField class]]) { 
      txt.font = [UIFont fontWithName:@"Arial-BoldMT" size:17]; 
      txt.contentVerticalAlignment = UIControlContentVerticalAlignmentFill; 
     } 
    } 

    [super viewDidLoad]; 

} 

Provare questo codice una volta.

1

Ogni volta che ciò accade a me, di solito è causato da alcune modifiche a UIAppearance non si fondono bene con UISearchBar. Guarda tutti i precedenti hack che potresti aver fatto e magari prova a commentarli uno alla volta.

Nel mio caso particolare era in realtà una modifica a NSForegroundColor in un attributo di testo, quindi questo disallineamento potrebbe non essere correlato alla modifica del carattere.

Problemi correlati