Xcode版本11.0 beta 5 (11M382q)
当我的一个视图控制器是顶部视图控制器时,我使用新的外观API来给条按钮项的颜色着色。我使用以下代码来做到这一点:
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测试版中的错误吗?我已经记录了一个雷达,但只是想看看是否有人遇到过这个问题或找到了解决办法。
如下所示,后退箭头和加号按钮的颜色不正确。
发布于 2019-09-05 18:28:52
这只是一个不设置以下内容的情况:
UINavigationBar.appearance().barTintColor = UIColor.black
UINavigationBar.appearance().tintColor = UIColor.white
我没有设置它们,因为我认为新的UINavigationBarAppearance()取代了它们,但设置这些解决了问题。我认为这将在GM或未来版本中更新,尽管混合使用新旧API似乎很奇怪。
发布于 2019-10-07 18:34:16
您必须设置:
let backImage = appearance.backIndicatorImage.tint(with: tintColor)
appearance.setBackIndicatorImage(backImage, transitionMaskImage: backImage)
发布于 2021-08-18 20:20:35
经过多次尝试和错误,我终于让它工作了:
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中当然不起作用。
https://stackoverflow.com/questions/57634813
复制相似问题