首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >UINavigationBarAppearance不适用于基于图像的栏按钮项

UINavigationBarAppearance不适用于基于图像的栏按钮项
EN

Stack Overflow用户
提问于 2019-08-24 11:08:06
回答 3查看 845关注 0票数 6

Xcode版本11.0 beta 5 (11M382q)

当我的一个视图控制器是顶部视图控制器时,我使用新的外观API来给条按钮项的颜色着色。我使用以下代码来做到这一点:

代码语言:javascript
运行
复制
let appearance = UINavigationBarAppearance()
let attributes: [NSAttributedString.Key : Any] = [.foregroundColor : tintColor]

appearance.largeTitleTextAttributes = attributes
appearance.buttonAppearance.normal.titleTextAttributes = attributes
appearance.doneButtonAppearance.normal.titleTextAttributes = attributes

navigationItem.standardAppearance = appearance

这似乎适用于基于文本的条形按钮项目,但基于图像的条形按钮项目保持了应用程序的默认色调。这是iOS 13测试版中的错误吗?我已经记录了一个雷达,但只是想看看是否有人遇到过这个问题或找到了解决办法。

如下所示,后退箭头和加号按钮的颜色不正确。

EN

回答 3

Stack Overflow用户

发布于 2019-09-05 18:28:52

这只是一个不设置以下内容的情况:

代码语言:javascript
运行
复制
UINavigationBar.appearance().barTintColor = UIColor.black
UINavigationBar.appearance().tintColor = UIColor.white

我没有设置它们,因为我认为新的UINavigationBarAppearance()取代了它们,但设置这些解决了问题。我认为这将在GM或未来版本中更新,尽管混合使用新旧API似乎很奇怪。

票数 0
EN

Stack Overflow用户

发布于 2019-10-07 18:34:16

您必须设置:

代码语言:javascript
运行
复制
let backImage = appearance.backIndicatorImage.tint(with: tintColor)
appearance.setBackIndicatorImage(backImage, transitionMaskImage: backImage)
票数 0
EN

Stack Overflow用户

发布于 2021-08-18 20:20:35

经过多次尝试和错误,我终于让它工作了:

代码语言:javascript
运行
复制
UIImage *image = [[[UIImage systemImageNamed:@"chevron.left" withConfiguration:[UIImageSymbolConfiguration configurationWithWeight:UIImageSymbolWeightSemibold]] imageWithTintColor:color] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
self.navigationController.navigationBar.backIndicatorImage = image;
self.navigationController.navigationBar.backIndicatorTransitionMaskImage = image;

但这在iOS 15中当然不起作用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57634813

复制
相关文章

相似问题

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