导航栏标题字体大小

jcr*_*son 13 iphone objective-c uinavigationcontroller ios

我需要在我的iPhone应用程序中更改一个视图控制器的导航栏标题文本的大小.我正在使用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]];
}
Run Code Online (Sandbox Code Playgroud)

但是这仅适用于tabBarItem.

Gaj*_*han 25

你已经得到了它,但你也可以使用以下属性方法.

对于颜色,

NSDictionary *attributes=[NSDictionary dictionaryWithObjectsAndKeys:[UIColor RedColor],UITextAttributeTextColor, nil];

self.navigationController.navigationBar.titleTextAttributes = attributes;
Run Code Online (Sandbox Code Playgroud)

对于尺寸,

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

self.navigationController.navigationBar.titleTextAttributes = size;
Run Code Online (Sandbox Code Playgroud)

谢谢.

适用于iOS 7及更高版本

尺寸:

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

self.navigationController.navigationBar.titleTextAttributes = size;
Run Code Online (Sandbox Code Playgroud)


Lor*_*o B 14

您需要获取导航栏属性和使用@property(nonatomic, copy) NSDictionary *titleTextAttributes.

有关详细信息,请参阅UINavigationBar类参考自定义UINavigationBar部分.

更好地理解您的问题:您拥有什么类型的控制器?

编辑

[self.navigationController.navigationBar setTitleTextAttributes:...];
Run Code Online (Sandbox Code Playgroud)

如果您访问navigationController推送控制器内.

[navigationController.navigationBar setTitleTextAttributes:...];
Run Code Online (Sandbox Code Playgroud)

如果navigationController是你的当前UINavigationController.例如,如果您有以下代码,则可以使用此选项:

UINavigationController* navigationController = ...;
[navigationController.navigationBar setTitleTextAttributes:...];
Run Code Online (Sandbox Code Playgroud)


Vei*_*hou 10

从iOS7开始,我总是这样做:

[[UINavigationBar appearance] setTitleTextAttributes:
    [NSDictionary dictionaryWithObjectsAndKeys:
        [UIFont fontWithName:@"Helvetica-Bold" size:18.0],NSFontAttributeName,
        nil]];
Run Code Online (Sandbox Code Playgroud)

UITextAttributeFontiOS7中的关键字一直很郁闷,你应该用它代替 NSFontAttributeName.

您可以使用 [self.navigationController.navigationBar setTitleTextAttributes:]设置某个navigationController的外观,同时[UINavigationBar appearance] setTitleTextAttributes:]直接适用于您的整个应用程序.(当然您需要将它放在属性位置.)