首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Xcode13中[[UINavigationBar外观] setBarTintColor:不能正常工作?

在Xcode13中[[UINavigationBar外观] setBarTintColor:不能正常工作?
EN

Stack Overflow用户
提问于 2021-09-29 13:54:29
回答 1查看 411关注 0票数 1

我已经更新了我的Xcode到13,后来在我的旧项目导航和选项卡栏颜色改为透明的文字。

我的代码是

代码语言:javascript
复制
[[UINavigationBar appearance] setBarTintColor:[UIColor AppThemeColour]];
[[UINavigationBar appearance] setTintColor:[UIColor whiteColor]];
[[UINavigationBar appearance] setTranslucent:NO];
[[UINavigationBar appearance] setShadowImage:[[UIImage alloc] init]];

我试着添加背景颜色,但是标题和navigationBar的图片不合适。

代码语言:javascript
复制
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]];

我已经研究了下面的链接,但我无法在Objective C中实现它

https://developer.apple.com/forums/thread/682420

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-09-29 14:05:58

几乎你所做的一切都是错误的(几年来一直都是错误的)。您需要使用UINavigationBarAppearance (和UITabBarAppearance),并将它们应用于栏的standardAppearancescrollEdgeAppearance。设置外观的背景色,而不是其色调颜色。并且永远不要接触translucent属性。

在这个简单的示例中,我们让所有导航栏都采用您的主题颜色。修改以满足您的需要和愿望:

代码语言:javascript
复制
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
}
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69377799

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档