I am using UIAppearance to apply fonts to UINavigationBar and UIBarButtonItem and I am having problems. I ran this 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]);
and the result of that log on iOS 7 is:
(null)
Where the result in iOS 6 is:
{
NSFont = "<UICFFont: 0x1d897a80> font-family: "My_Font"; font-weight: normal; font-style: normal; font-size: 17px";
}
I can't find anything in the iOS 7 docs that would indicate that this shouldn't work, has anyone else had this problem?
Edit 1
I actually have gotten this to work with [UINavigationBar appearance]
the problem was that I was setting the point size to 0 in order to have the font be set to the default navbar/barButtonItem size as described in the NSString UIKit Additions Reference but this apparently no longer works in iOS 7. Instead, setting the point size to 0 will return the system font.
I am still unable to set titleTextAttributes
to
[UIBarButtonItem appearanceWhenContaintedIn:[UIToolbar class], nil]]
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…