IPhoneアプリで、1つのビューコントローラーのナビゲーションバーのタイトルテキストのサイズを変更する必要があります。私はiOS5を使用しており、次のコードを試しました:
if ([self.tabBarItem respondsToSelector:@selector(setTitleTextAttributes:)]) {
NSLog(@"*** Support method(iOS 5): setTitleTextAttributes:");
[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]];
}
ただし、これはtabBarItemにのみ適用されます。
ナビゲーションバーのプロパティと@property(nonatomic, copy) NSDictionary *titleTextAttributes
を使用する必要があります。
詳細については、 INavigationBarクラスリファレンス および INavigationBarセクションのカスタマイズ を参照してください。
あなたの質問をよりよく理解するために:どのタイプのコントローラーがありますか?
[〜#〜]編集[〜#〜]
[self.navigationController.navigationBar setTitleTextAttributes:...];
プッシュされたコントローラー内でnavigationController
にアクセスした場合。
[navigationController.navigationBar setTitleTextAttributes:...];
navigationController
が現在のUINavigationController
の場合。これは、たとえば次のコードがある場合に使用できます。
UINavigationController* navigationController = ...;
[navigationController.navigationBar setTitleTextAttributes:...];
すでに取得していますが、次の属性メソッドを使用することもできます。
色の場合
NSDictionary *attributes=[NSDictionary dictionaryWithObjectsAndKeys:[UIColor RedColor],UITextAttributeTextColor, nil];
self.navigationController.navigationBar.titleTextAttributes = attributes;
サイズについて
NSDictionary *size = [NSDictionary dictionaryWithObjectsAndKeys:[UIFont fontWithName:@"Arial" size:17.0],UITextAttributeFont, nil];
self.navigationController.navigationBar.titleTextAttributes = size;
ありがとう。
IOS 7以降の場合
サイズ:
NSDictionary *size = [NSDictionary dictionaryWithObjectsAndKeys:[UIFont fontWithName:@"Arial" size:17.0],NSFontAttributeName, nil];
self.navigationController.navigationBar.titleTextAttributes = size;
IOS7以来、私はいつも次のようにしています:
[[UINavigationBar appearance] setTitleTextAttributes:
[NSDictionary dictionaryWithObjectsAndKeys:
[UIFont fontWithName:@"Helvetica-Bold" size:18.0],NSFontAttributeName,
nil]];
キーワードUITextAttributeFont
はiOS7で使用できなくなりました。NSFontAttributeName
に置き換える必要があります。
[self.navigationController.navigationBar setTitleTextAttributes:]
を使用して、誰かのnavigationControllerの外観を設定できますが、[UINavigationBar appearance] setTitleTextAttributes:]
は、アプリ全体に対して直接機能します(もちろん、プロパティの位置に配置する必要があります)。
Swift 2.0:
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
UINavigationBar.appearance().titleTextAttributes = [
NSFontAttributeName: UIFont(name: "DINNextLTW04-Regular", size: 20)!
]
return true
}
または
override func viewDidLoad() {
super.viewDidLoad()
self.navigationController?.navigationBarHidden = false
self.title = "SAMPLE"
//Set Color
let attributes: AnyObject = [ NSForegroundColorAttributeName: UIColor.redColor()]
self.navigationController!.navigationBar.titleTextAttributes = attributes as? [String : AnyObject]
//Set Font Size
self.navigationController!.navigationBar.titleTextAttributes = [NSFontAttributeName: UIFont(name: "Arial", size: 37.0)!];
}
私の例
guard let sansLightFont = UIFont(name: "OpenSans", size: 20) else { return }
navigationController?.navigationBar.titleTextAttributes = [NSFontAttributeName : sansLightFont]