2012-03-08 13 views
13

私の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にのみ適用されます。

答えて

13

ナビゲーションバーのプロパティと、@property(nonatomic, copy) NSDictionary *titleTextAttributesを取得する必要があります。

詳細はUINavigationBar Class ReferenceCustomizing UINavigationBar sectionを参照してください。

あなたの質問をよりよく理解するには、どのような種類のコントローラがありますか?

EDIT

[self.navigationController.navigationBar setTitleTextAttributes:...]; 

あなたがプッシュされ、コントローラ内navigationControllerにアクセスした場合。

[navigationController.navigationBar setTitleTextAttributes:...]; 

navigationControllerがあなたの現在のUINavigationControllerある場合。たとえば、次のコードを使用している場合などに使用できます。

UINavigationController* navigationController = ...; 
[navigationController.navigationBar setTitleTextAttributes:...]; 
+1

?私は、私のルートビューを標準のフォントサイズにしたいが、プッシュされたビューはより小さなフォントを持つようにしたい。小さなフォントを設定することができましたが、ルートビューに戻ったときにフォントを小さくしておき、標準サイズにしておきます。 –

25

これは既に取得済みですが、次の属性メソッドを使用することもできます。色の

、サイズについては

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の場合、Sizeに

上記

NSDictionary *size = [NSDictionary dictionaryWithObjectsAndKeys:[UIFont fontWithName:@"Arial" size:17.0],NSFontAttributeName, nil]; 

self.navigationController.navigationBar.titleTextAttributes = size; 
+1

サイズは私のために同じまま... –

+0

私に私のコードを表示 –

+0

フォントが正しくインポートされていないときに私はそれが動作しないことがわかった –

10

iOS7ので、私は常に次のように実行します。

キーワード UITextAttributeFontはiOS7から押された
[[UINavigationBar appearance] setTitleTextAttributes: 
    [NSDictionary dictionaryWithObjectsAndKeys: 
     [UIFont fontWithName:@"Helvetica-Bold" size:18.0],NSFontAttributeName, 
     nil]]; 

、あなたは NSFontAttributeNameと置き換えるべきです。

あなたは直接あなたの全体のAppの[UINavigationBar appearance] setTitleTextAttributes:]作品ながら、誰かnavigationControllerのappearenceを設定する [self.navigationController.navigationBar setTitleTextAttributes:]を使用することができます。(もちろん、あなたが財産位置にそれを配置する必要があります。)

2

スウィフト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)!]; 

} 
0

私の例

guard let sansLightFont = UIFont(name: "OpenSans", size: 20) else { return } 
navigationController?.navigationBar.titleTextAttributes = [NSFontAttributeName : sansLightFont] 
関連する問題