2011-01-15 4 views
6

Wie kann ich benutzerdefinierte Schriftart in UINavigationBar festlegen? Ich brauche die Tahoma Schrift.Wie kann ich benutzerdefinierte Schrift in UINavigationBar festlegen?

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

alt text

+1

Die Schriftart Tahoma von Microsoft gehört. Sobald Sie die Lizenzierungsseite der Dinge aussortiert haben, lassen Sie es uns wissen und wir helfen Ihnen beim Codieren. :-) –

+0

Aber iphone hat eingebaute Tahoma Schrift. Ich brauche irgendwelche Lizenzen. – Voloda2

+2

Tahoma ist keine der integrierten Schriftarten – grahamparks

Antwort

21

durchaus möglich, wenn auch ein wenig zu tun schwierig zu. Sobald Sie die gewünschte Schriftart gefunden haben (entweder eine der Alternativen, die bereits mit iOS geliefert wurden, oder eine TTF-Datei, für die Sie die richtige Lizenz haben), erstellen Sie einfach ein UILabel mit der Größe, Formatierung, Schriftart usw. und fügen Sie dann hinzu Klicken Sie dazu auf die Navigationselemente für diese Leiste (oder, wenn Sie dies in einem Ansichtscontroller tun, legen Sie die .navigationItem.titleView dieses Controllers auf Ihre Beschriftung fest).

Zum Beispiel habe ich einen View-Controller in einem UINavigationController. Um die Beschriftung in der oberen in eine benutzerdefinierte Schriftart zu ändern, ich einfach tun:

//...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

der Vollständigkeit halber könnten Sie die Antwort bearbeiten, um auch auf eine Liste verfügbarer Schriftarten wie [diese] zu zeigen (http://daringfireball.net/misc/2007/07/iphone-osx-fonts);) –

+1

Oder [dieser ] (http://iosfonts.com). –

17

Dieser Code sollte funktionieren. In Uiviewcontroller die Haupt ui präsentiert:

- (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]; 
} 

Beachten Sie, dass resultierende benutzerdefinierte Ansicht transparenten Hintergrund hat, so dass Sie etwas mehr zu Ihrer Navigationsleiste mit [navigationController.navigationBar addSubview: view] hinzufügen können. Dies kann in der linken Ecke der Leiste oder etwas anderes sein.

Wenn Sie die benutzerdefinierte Ansicht verwenden, können Sie den Titel nicht mehr mit dem Titel "uiviewcontroller" festlegen. Sie müssen den von Ihrer benutzerdefinierten Ansicht verfügbaren Weg verwenden.

Beispiel:

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