gpt4 book ai didi

swift - 更改 UINavigationbar 中元素的色调颜色(iOS 11)

转载 作者:IT王子 更新时间:2023-10-29 05:13:24 24 4
gpt4 key购买 nike

我一直在使用这段代码来改变导航栏中元素的色调:

UINavigationBar.appearance().tintColor = theme.labelColor

但是,这在 iOS 11 中不再有效。在 iOS 11 之前,导航栏中的按钮是 UINavigationButton,但在 iOS 11 中它们已更改为 _UIModernBarButton。我可以使用 UIButton.appearance().tintcolor 更改它们的色调,但这会改变每个按钮的颜色。

这是一个比较:

iOS 10 Vs. 11 UINavigationBar button任何人都知道如何更改导航栏中的按钮色调颜色?

2017 年 1 月 9 日更新:看起来 _UIButtonBarButton 具有正确的色调,但 _UIModernBarButton 将其覆盖为 UIButton 设置的颜色。

2017 年 9 月 18 日更新:

“工程部门就此问题提供了以下反馈:

UIView.tintColor 不是外观选择器,具体记录为由于其继承属性而无法作为外观属性正常工作。”

最佳答案

所以我确实找到了一种解决方案。我通过 UIButton 的外观代理设置色调颜色,但仅当包含在 UINavigationBar 中时。这看起来对我有用。但是仍然希望这种行为会在 iOS 11 GM 中改变,或者有人可以提出更好的解决方案。这是我的工作代码:

 if([UIButton respondsToSelector:@selector(appearanceWhenContainedInInstancesOfClasses:)]) {
[[UIButton appearanceWhenContainedInInstancesOfClasses:@[UINavigationBar.class]]setTintColor:navTintColor];
}

外观代理调用的Swift版本:

UIButton.appearance(whenContainedInInstancesOf: [UINavigationBar.self]).tintColor = UIColor.red

关于swift - 更改 UINavigationbar 中元素的色调颜色(iOS 11),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45893605/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com