tvOS:自定义UINavigationBar字体

时间:2016-08-17 07:14:55

标签: objective-c uinavigationbar tvos uiappearance

我一直在尝试在tvOS应用程序中自定义UINavigationBar中使用的字体,我遇到了让字体更改生效的问题。这是我的代码:

CGFloat fontSize = ((UIFont *)self.navigationBar.titleTextAttributes[NSFontAttributeName]).pointSize;
NSDictionary *appearance = @{
                             NSFontAttributeName : [UIFont fontWithName:@"HelveticaNeue-UltraLight" size:fontSize * 2],
                             NSForegroundColorAttributeName: [UIColor greenColor]
                             };

// Navigation bar Title

// Using traits - works in iOS only
UITraitCollection *traits = [UITraitCollection traitCollectionWithUserInterfaceIdiom:[[UIDevice currentDevice] userInterfaceIdiom]];
[[UINavigationBar appearanceForTraitCollection:traits] setTitleTextAttributes:appearance];

// Nav bar appearance - works in iOS only
[[UINavigationBar appearance] setTitleTextAttributes:appearance];

// Direct setting - works in iOS & tvOS
[self.navigationBar setTitleTextAttributes:appearance];

// Navigation bar Edit button

// Appearance - works in iOS only
[[UIBarButtonItem appearance] setTitleTextAttributes:appearance forState:UIControlStateNormal];

// Direct - works in iOS only
[self.editButtonItem setTitleTextAttributes:appearance forState:UIControlStateNormal];

到目前为止,似乎我可以直接在iOS中设置标题的字体和颜色。但只能在tvOS中使用直接设置。

对于我的编辑按钮,我根本无法在tvOS中工作。

我希望直接或通过特征使用外观代理。

任何人都知道为什么这不适用于tvOS?

我似乎无法在网络上找到关于自定义tvOS应用程序外观的更多信息。

P.S。我正在使用XCode 7.3.1和tvOS 9.2

0 个答案:

没有答案