2012-06-27 9 views
14

Ich mache eine App basierend auf TabbarController. Ich habe 3 Tabar-Elemente.Wie ändere ich die Schriftgröße des Tab-Controllers?

Meine Frage ist: Wie kann ich die Schriftart für den Titel auf der Tab-Leiste ändern?

+0

ist es zur Laufzeit? – janusbalatbat

+1

Vertrauen Sie mir, keiner der Benutzer liest den Text, ich bevorzuge eher Zeit auf einem wirklich guten beschreibenden Symbol verbringen – doNotCheckMyBlog

+0

ja. Ich möchte es programmatisch –

Antwort

11
[self.tabBarItem setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys: 
              [UIFont fontWithName:@"AmericanTypewriter" size:20.0f], UITextAttributeFont, 
              [UIColor blackColor], UITextAttributeTextColor, 
              [UIColor grayColor], UITextAttributeTextShadowColor, 
              [NSValue valueWithUIOffset:UIOffsetMake(0.0f, 1.0f)], UITextAttributeTextShadowOffset, 
              nil]]; 
+1

es kommt nicht .. es zeigt Warnung und beendet von dort –

+1

Warum ist dies upvoted 7-mal, wenn es keine solche Methode für UITabBarItem gibt? –

+3

Für alle, die immer noch Probleme damit haben: Die oben beschriebene Methode ist falsch. Sie müssen den 'forState:' Parameter nach 'setTitleTextAttributes:' hinzufügen. Es wird dann ohne Warnungen kompiliert und funktioniert wie erwartet. – element119

0

Sorry, ich glaube nicht, dass es einen Weg gibt, dies zu tun. Wenn Sie verzweifelt sind, müssen Sie Ihre eigene Tab-Leiste schreiben.

+1

Warum wird dies aktualisiert? Für diese frühere Frage wurden Lösungen vorgeschlagen: http://stackoverflow.com/q/2576592/199364. Oder sagst du, dass die Frage hier anders ist? – ToolmakerSteve

+0

@ToolmakerSteve Absolut korrekt. Überprüfe meine Antwort. –

0

Leider ist dies derzeit auf iOS nicht möglich, außer Sie erstellen Ihre eigene benutzerdefinierte Tab-Leiste, die mit Storyboarding auf iOS5 nicht sehr schwierig ist.

0

nicht möglich, erstellen custome Tableiste Subklassen UITabBar

0

Wenn Sie diesen Fehler sehen: 'UITextAttributeTextShadowOffset' is deprecated: first deprecated in iOS 7.0 - Use NSShadowAttributeName with an NSShadow instance as the value., versuchen Sie dies.

NSShadow *shadow = [[NSShadow alloc] init]; 
shadow.shadowColor = [UIColor grayColor]; 
shadow.shadowOffset = CGSizeMake(0.0, 0.5); 

NSDictionary *attribute = [NSDictionary dictionaryWithObjectsAndKeys: 
[UIFont fontWithName:@"AmericanTypewriter" size:10.0f], NSFontAttributeName, 
[UIColor blackColor], NSForegroundColorAttributeName, 
shadow,NSShadowAttributeName,nil]; 
[[UITabBarItem appearance] setTitleTextAttributes:attribute forState:UIControlStateNormal]; 
-1

Versuchen Sie dies.

[[UITabBarItem appearanceWhenContainedIn:[UITabBar class], nil] 
    setTitleTextAttributes:@{NSForegroundColorAttributeName: 
    [UIColor colorWithRed:0/255.0f green:130/255.0f blue:202/255.0f alpha:1.0], 
    NSFontAttributeName:[UIFont fontWithName:@"Signika-Semibold" size:20.0] 
    } 
forState:UIControlStateNormal]; 
+0

Care um zu klären, was es genau macht? – MeanGreen

1

Dies wird ur UITabBarItem Fonts einmal ändern und für alle in der gesamten App

Für Swift Verwendung dieser in AppDelegate der didFinishLaunching:

Swift 3:

UITabBarItem.appearance().setTitleTextAttributes([NSForegroundColorAttributeName:UIColor.blue,NSFontAttributeName: UIFont(name: "Montserrat", size: 11)!], for: .normal) 

UITabBarItem.appearance().setTitleTextAttributes([NSForegroundColorAttributeName:UIColor.red,NSFontAttributeName: UIFont(name: "Montserrat", size: 11)!], for: .selected) 
Verwandte Themen