首页 文章

更改UINavigationBar的字体

提问于
浏览
1

Solved

通过从“[UINavigationBar外观]”更改为“self.navigationController.navigationBar”,我能够对实例本身进行更改,然后第一次加载

TLDR; UINavigationBar font not changing unless I load another view and then go back to the first view.

你好

我有一个iOS7项目,我想改变我嵌入项目的UINavigationBar的外观 .

我做了一些研究,我发现如果我想更改NavigationBar的字体,我将不得不在AppDelegate.m和方法中执行此操作

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:

所以我在这里创建了这个代码:

- (void)changeAppearanceOfNavigationBar {
// Shadow
NSShadow *shadow = [[NSShadow alloc] init];

// Nagivation bar font
[[UINavigationBar appearance] setTitleTextAttributes: [NSDictionary dictionaryWithObjectsAndKeys:[UIColor whiteColor],
                                                       NSForegroundColorAttributeName,
                                                       shadow, NSShadowAttributeName,
                                                       [UIFont fontWithName:@"HelveticaNeue-Thin" size:25.0],NSFontAttributeName, nil]];
NSLog(@"Font changed");
}

我从didFinishLaunchingWithOptions调用此方法

所以,这段代码对字体没有任何作用,所以我尝试用另一种方式来做 .

在我的第一个视图控制器(主应用程序页面)中,我在viewDidLoad中执行相同的代码

- (void)viewDidLoad {
NSShadow *shadow = [[NSShadow alloc] init];
    [[UINavigationBar appearance] setTitleTextAttributes: [NSDictionary dictionaryWithObjectsAndKeys:[UIColor whiteColor],
                                                           NSForegroundColorAttributeName,
                                                           shadow, NSShadowAttributeName,
                                                           [UIFont fontWithName:@"HelveticaNeue-Thin" size:25.0],NSFontAttributeName, nil]];

    self.navigationItem.title = @"TITLEEEE";

}

这是我问题的“最佳”部分 . viewDidLoad中的这段代码在启动时不会改变我的UINavigationBar的字体,但是如果我加载另一个视图并且segue返回,它会改变 .

2 回答

  • 0

    从代码中看,这些设置是在类上执行的,而不是在实例上执行的,这说明它在创建新实例后会生效 . 当调用applicationDidFinishLaunching时,已经创建了条的第一个实例,因此在类上进行设置为时已晚 . 尝试在较早的时候进行此设置,例如甚至在你的主() . 在这种特殊情况下,您可以在类上进行设置,而不是在任何实例上进行设置 .

  • 0

    您的属性名称错误,您需要:UITextAttributeFont,UITextAttributeTextColor

相关问题