2013-04-11 16 views
14

Próbuję dostosować czcionkę UISearchBar za pośrednictwem proxy wygląd. Działa, ale jakoś tekst zastępczy nie jest wyśrodkowany w pionie. Próbowałem ustawić właściwość pionowego wyrównania; tekst zastępczy zostałby wyśrodkowany, ale wprowadzony tekst byłby nieco poniżej linii środkowej ... Czy jest jakiś sposób, aby to naprawić?Tekst zastępczy niewłaściwie wyrównany w UITextField z UISearchBar

Edit: Kod Kiedyś dodać niestandardowe czcionki:

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

placeholder text

normal text

+0

jak ustawiasz symbol zastępczy? – Kasaname

+0

pokaż kod, którego używasz do ustawienia wyglądu i symbolu zastępczego: –

+0

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

Odpowiedz

0

Musisz ustawić wyrównanie textField wewnątrz paska wyszukiwania. Uzyskaj textField z podelementów paska UISearch i po prostu ustaw jego wyrównanie na środek. Wypróbuj przykładowy kod poniżej.

- (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. 
} 

tutaj _searchbar jest gniazdem 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]; 

} 

Spróbuj użyć tego kodu jeden raz.

1

Ilekroć mi się to przydarza, jest to zwykle spowodowane pewną modyfikacją UIAppearance, która nie jest dobrze mieszana z UISearchBar. Spójrz na wszystkie poprzednie hacki, które mógłbyś zrobić, a może spróbuj je skomentować pojedynczo.

W moim konkretnym przypadku była to modyfikacja NSForegroundColor w atrybucie tekstowym, więc ta niewspółosiowość może być niezwiązana ze zmianą czcionki.

Powiązane problemy