我一直在使用我认为是一些相当标准的 iOS 5 代码(这是stackoverflow 上接受的 7 倍答案),以便让我的 UINavigationBar 的标题以自定义字体显示。]
但我发现当我为 iOS5 构建的应用程序(以便它可以在 iOS5 和 iOS6 设备上运行)在 iOS6 模拟器上运行时,它省略了我的标题。
以下是在 iOS 5.1 模拟器上运行的相同代码。
为清楚起见,以下是在我尝试在 iOS 6 上运行之前一直有效的相关代码。
#define COURIER_FONT_BOLD @"CourierNewPS-BoldMT"
- (UIFont*)navigationBarTitleFontPortrait
{
if (!_navigationBarTitleFontPortrait)
_navigationBarTitleFontPortrait = [UIFont fontWithName:COURIER_FONT_BOLD size:24.0];
return _navigationBarTitleFontPortrait;
}
// …
if ([[UINavigationBar class] respondsToSelector:@selector(appearance)])
{
NSDictionary* attrs = [NSDictionary dictionaryWithObjectsAndKeys:
[UIColor lightGrayColor],
UITextAttributeTextShadowColor,
[NSValue valueWithUIOffset:UIOffsetMake(1, 0)],
UITextAttributeTextShadowOffset,
navigationBarTitleFontPortrait,
UITextAttributeFont,
nil];
[[UINavigationBar appearance] setTitleTextAttributes:attrs];
}