更改导航栏的字体
问题很简单,答案不幸。
如何更改UINavigationBar
中的文本的字体?
从iOS 7和更高版本:
NSShadow* shadow = [NSShadow new]; shadow.shadowOffset = CGSizeMake(0.0f, 1.0f); shadow.shadowColor = [UIColor redColor]; [[UINavigationBar appearance] setTitleTextAttributes: @{ NSForegroundColorAttributeName: [UIColor greenColor], NSFontAttributeName: [UIFont fontWithName:@"Helvetica" size:20.0f], NSShadowAttributeName: shadow }];
从iOS 5及更高版本:
[[UINavigationBar appearance] setTitleTextAttributes: @{ UITextAttributeTextColor: [UIColor greenColor], UITextAttributeTextShadowColor: [UIColor redColor], UITextAttributeTextShadowOffset: [NSValue valueWithUIOffset:UIOffsetMake(0.0f, 1.0f)], UITextAttributeFont: [UIFont fontWithName:@"Helvetica" size:20.0f] }];
早于iOS 5:
UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 400, 44)]; label.backgroundColor = [UIColor clearColor]; label.font = [UIFont boldSystemFontOfSize:20.0]; label.shadowColor = [UIColor colorWithWhite:0.0 alpha:0.5]; label.textAlignment = UITextAlignmentCenter; label.textColor =[UIColor whiteColor]; label.text=self.title; self.navigationItem.titleView = label; [label release];
如果你想改变界面生成器本身的字体(没有任何代码),这是在Xcode6中的方式:
1.)在导航控制器场景下find导航栏视图
2.)更改属性检查器中的标题字体,颜色和阴影属性。
以上答案有效。 我会在最后一行之前添加下面一行。 如果我不这样做的话,如果左侧有一个后退button,但是没有右侧button,标签似乎是错误的。
... [self.navigationItem.titleView sizeToFit]; [label release]; // not needed if you are using ARC
针对iOS 7更新:
[[UINavigationBar appearance] setTitleTextAttributes: [NSDictionary dictionaryWithObjectsAndKeys: [UIColor colorWithRed:245.0/255.0 green:245.0/255.0 blue:245.0/255.0 alpha:1.0], NSForegroundColorAttributeName, shadow, NSShadowAttributeName, [UIFont fontWithName:@"HelveticaNeue-CondensedBlack" size:21.0], NSFontAttributeName, nil]];
礼貌:
http://www.appcoda.com/customize-navigation-status-bar-ios-7/
不知道为什么所有的答案都包含了阴影。 添加操纵阴影的线不会改变文字字体。 这两行代码将适用于iOS 8.4和Swift
let attributesDictionary = [NSFontAttributeName: UIFont(name: "Helvetica Neue", size: 14)!] navigationController!.navigationBar.titleTextAttributes = attributesDictionary
titleTextAttributes
存储一个字典,用来指定导航栏标题的字体,颜色,大小和其他属性。
从iOS 5开始,您可以使用外观代理。
答案是这个问题的重复: https : //stackoverflow.com/a/12364740/883413
NSShadow *shadow = [NSShadow new]; [shadow setShadowColor: [UIColor clearColor]]; [shadow setShadowOffset: CGSizeMake(0.0f, 1.0f)]; [self.navigationController.navigationBar setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys: [UIFont fontWithName:@"TimeBurner" size:27.0f], NSFontAttributeName, [UIColor whiteColor], NSForegroundColorAttributeName, shadow, NSShadowAttributeName,nil]];