web-dev-qa-db-ja.com

ナビゲーションバーのタイトルのフォントサイズ

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
jcrowson

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

詳細については、 INavigationBarクラスリファレンス および INavigationBarセクションのカスタマイズ を参照してください。

あなたの質問をよりよく理解するために:どのタイプのコントローラーがありますか?

[〜#〜]編集[〜#〜]

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

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

[navigationController.navigationBar setTitleTextAttributes:...];

navigationControllerが現在のUINavigationControllerの場合。これは、たとえば次のコードがある場合に使用できます。

UINavigationController* navigationController = ...;
[navigationController.navigationBar setTitleTextAttributes:...];
14
Lorenzo B

すでに取得していますが、次の属性メソッドを使用することもできます。

色の場合

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;
25

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:]は、アプリ全体に対して直接機能します(もちろん、プロパティの位置に配置する必要があります)。

10
Veight Zhou

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)!];

 }
4
A.G

私の例

guard let sansLightFont = UIFont(name: "OpenSans", size: 20) else { return }
navigationController?.navigationBar.titleTextAttributes = [NSFontAttributeName : sansLightFont]
0