提问人:Naresh 提问时间:9/29/2021 更新时间:9/29/2021 访问量:755
在 Xcode 13 [[UINavigationBar 外观] setBarTintColor 中:无法正常工作?
In Xcode 13 [[UINavigationBar appearance] setBarTintColor: not working properly?
问:
我已将我的 Xcode 更新为 13,后来我的旧项目导航和标签栏颜色中的单词更改为透明。
我的代码是
[[UINavigationBar appearance] setBarTintColor:[UIColor AppThemeColour]];
[[UINavigationBar appearance] setTintColor:[UIColor whiteColor]];
[[UINavigationBar appearance] setTranslucent:NO];
[[UINavigationBar appearance] setShadowImage:[[UIImage alloc] init]];
我试图添加背景颜色,但导航栏的标题和图像没有出现。
self.navigationController.navigationBar.backgroundColor = [UIColor bOneAppThemeColor];
[[UINavigationBar appearance] setBarTintColor:[UIColor AppThemeColour]];
[[UINavigationBar appearance] setTintColor:[UIColor whiteColor]];
[[UINavigationBar appearance] setTranslucent:NO];
[[UINavigationBar appearance] setShadowImage:[[UIImage alloc] init]];
我已经研究了下面的链接,但我无法在目标 C 中实现它
答:
6赞
matt
9/29/2021
#1
你所做的几乎所有事情都是错的(而且已经错了好几年了)。您需要使用 UINavigationBarAppearance(和 UITabBarAppearance)并将它们应用于条形图及其 .设置外观的背景色,而不是其色调颜色。并且永远不要碰酒店。standardAppearance
scrollEdgeAppearance
translucent
在这个简单的示例中,我们使所有导航栏都采用您的主题颜色。根据您的需求和愿望进行修改:
if (@available(iOS 13.0, *)) {
UINavigationBarAppearance* appear = [UINavigationBarAppearance new];
appear.backgroundColor = [UIColor AppThemeColor];
id proxy = [UINavigationBar appearance];
[proxy setStandardAppearance: appear];
[proxy setScrollEdgeAppearance: appear];
} else {
// Fallback on earlier versions
}
评论