titleTextAttributes UIA-Schriftart in iOS 7
Ich bin mit UIAppearance anwenden-Schriften zu UINavigationBar und UIBarButtonItem und ich habe Probleme. Ich lief diesen code:
[[UIBarButtonItem appearanceWhenContainedIn:[UIToolbar class], nil]
setTitleTextAttributes:
@{NSFontAttributeName : [UIFont fontWithName:@"My_Font" size:17.0]}
forState:UIControlStateNormal];
NSLog(@"%@", [[UIBarButtonItem appearanceWhenContainedIn:
[UIToolbar class], nil] titleTextAttributesForState:UIControlStateNormal]);
und das Ergebnis, dass Anmeldung iOS 7:
(null)
Wo das Ergebnis in iOS 6:
{
NSFont = "<UICFFont: 0x1d897a80> font-family: \"My_Font\"; font-weight: normal; font-style: normal; font-size: 17px";
}
Ich kann nichts finden in der iOS-7-docs, die zeigen, dass dies nicht funktionieren sollte, hat sonst noch jemand dieses problem gehabt?
Bearbeiten 1
Eigentlich habe ich diesen Traum, mit zu arbeiten [UINavigationBar appearance]
das problem war, dass ich die Einstellung der Größe auf 0, um die schriftart auf den Standardwert festgelegt werden navbar/barButtonItem Größe wie beschrieben in der NSString UIKit Ergänzungen Referenz aber diese anscheinend nicht mehr funktioniert in iOS 7. Stattdessen, die Einstellung der Schriftgröße in Punkt 0 wird wieder die system-schriftart.
Ich bin immer noch nicht dazu in der Lage titleTextAttributes
zu
[UIBarButtonItem appearanceWhenContaintedIn:[UIToolbar class], nil]]
InformationsquelleAutor der Frage LOP_Luke | 2013-09-19
Du musst angemeldet sein, um einen Kommentar abzugeben.
Der Schlüssel ist die Verwendung NSFontAttributeName und so weiter. Ich nehme an, Sie bewegen sich auf den NS-Vielfalt für 64-bit-Kompatibilität. Der obige code funktionierte auf meinem iOS7 Gerät.
InformationsquelleAutor der Antwort TMilligan
Folgende @Alex Zavatone Antwort - es könnte getan werden, schön in nur einer Zeile code:
InformationsquelleAutor der Antwort Sergey Grischyov
Dies funktionierte gut für iOS 7, wenn ich es verschoben auf eine viewDidLoad-Methode in meinem view controller.
Als ich versuchte, dies zu tun in AppDelegate es hat nicht funktioniert, obwohl
[[UINavigationBar appearance] setTitleTextAttributes:setTitleTextAttributes:attributes];
fein gearbeitet in AppDelegate. Es sollte auch gehen, bevor Sie Sie erstellen, und weisen Sie die bar-Taste.Funktioniert es auch von initWithCoder Methode, wenn Sie erstellen Sie Ihre bar-Taste auf Storyboard.
Update:
Wenn Sie ändern deployment target auf 7.0 dann Xcode werden Sie mit Warnungen, die sagen, dass zum Beispiel UITextAttributeTextColor ist veraltet und Sie sollten NSForegroundColorAttributeName oder statt UITextAttributeFont verwenden NSFontAttributeName. Nach der änderung von Attribut-Konstanten können Sie anrufen setTitleTextAttributes: von der AppDelegate.
InformationsquelleAutor der Antwort Dmitry Volkov
Hier ist, was ich Tue, iOS-7
InformationsquelleAutor der Antwort Alex Zavatone
Hier ist es in Swift:
*Beachten Sie, dass müssen Sie entfernen Sie das optionale UIFont.
InformationsquelleAutor der Antwort yndolok
Für die UIBarButons verwenden Sie die Aussehen proxy:
Wenn Sie einschränken möchten, welche UIBarButtonItems Ihren Stil betrifft die Verwendung appearanceWhenContainedIn: statt.
Für die UINavigationBar, können Sie ein UILabel und legen Sie es auf Ihrem navigationItem.titleView:
InformationsquelleAutor der Antwort Will Jenkins
Hier ist, wie Global ändern der nav-Leiste Titel text Farbe im Swift 4:
InformationsquelleAutor der Antwort Josh Adams