UINavigationBar のタイトルをカスタマイズされたフォントで表示するために、かなり標準的な iOS 5 コード (およびスタック オーバーフローで7 倍受け入れられた回答) であると考えていたものを使用しています。
しかし、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];
}