2011-01-15 3 views
6

Jak ustawić niestandardową czcionkę w polu UINavigationBar? Potrzebuję czcionki tahoma.Jak ustawić niestandardową czcionkę w polu UINavigationBar?

- (void)viewDidLoad{ 
    self.title [email protected]"My text"; 
} 

alt text

+1

Czcionka Tahoma jest własnością Microsoft. Po omówieniu kwestii związanych z licencjonowaniem daj nam znać, a pomożemy Ci w kodowaniu. :-) –

+0

Ale iphone ma wbudowaną czcionkę tahoma. Potrzebuję licencji. – Voloda2

+2

Tahoma nie jest jedną z wbudowanych czcionek – grahamparks

Odpowiedz

21

Zupełnie możliwe, jeśli trochę trudne do zrobienia. Po znalezieniu potrzebnej czcionki (jednej z alternatywnych już dostarczonych wraz z iOS lub plikiem TTF, dla którego masz odpowiednie licencje), po prostu utwórz UILabel z rozmiarem, formatowaniem, czcionką itp., A następnie dodaj do elementów nawigacyjnych tego paska (lub, jeśli robisz to w kontrolerze widoku, ustaw parametr .navigationItem.titleView tego kontrolera na etykiecie).

Na przykład mam kontroler widoku wewnątrz kontrolera UINavigationController. Aby zmienić etykietę u góry na niestandardową czcionkę, wystarczy:

//...I have already setup a UILabel called navLabel that has the same style as a 
// default navigation bar title, but I've changed the .font property to my custom font 
self.navigationItem.titleView = navLabel; 
[navLabel release]; 
+0

dla kompletności można edytować odpowiedź, aby wskazać także listę dostępnych czcionek, takich jak [this one] (http://daringfireball.net/misc/2007/07/iphone-osx-fonts);) –

+1

Lub [ten jeden ] (http://iosfonts.com). –

17

Ten kod powinien działać. W UIViewController, który prezentuje swoją główną ui:

- (void)viewDidLoad 
{ 
     [super viewDidLoad]; 

     int height = navigationController.navigationBar.frame.size.height; 
     int width = navigationController.navigationBar.frame.size.width; 

     UILabel *navLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, width, height)]; 
     navLabel.backgroundColor = [UIColor clearColor]; 
     navLabel.textColor = [UIColor whiteColor]; 
     navLabel.shadowColor = [UIColor colorWithWhite:0.0 alpha:0.5]; 
     navLabel.font = [UIFont boldSystemFontOfSize:15]; 
     navLabel.textAlignment = UITextAlignmentCenter; 
     self.navigationItem.titleView = navLabel; 
     [navLabel release]; 
} 

Uwaga wynikający widok niestandardowy ma przezroczyste tło, dzięki czemu można dodać coś więcej na pasku nawigacyjnym z [navigationController.navigationBar addSubview: Widok]. Może to być spinner w lewym rogu paska lub coś innego.

Jeśli używasz widoku niestandardowego, nie będzie już można ustawić tytułu z tytułem uiviewcontroller. Musisz użyć sposobu dostępnego w niestandardowym widoku.

przykład:

((UILabel *)self.navigationItem.titleView).text = title;