ios15 - 导航栏 setBackgroundImage 在 iOS15 上不起作用
问题描述
- (void)viewDidLoad {
[super viewDidLoad];
[self.navigationController.navigationBar setBackgroundImage:xxx] forBarMetrics:UIBarMetricsDefault];
[self.navigationController.navigationBar setBarTintColor:[UIColor redColor]];
}
它在 iOS14 上完美运行。但在 iOS15、XCode13 beta 上,它不再工作了。
解决方案
超频:
if (@available(iOS 15.0, *)) {
UINavigationBarAppearance *appearance = [[UINavigationBarAppearance alloc] init];
[appearance configureWithOpaqueBackground];
appearance.backgroundColor = [UIColor whiteColor];
appearance.shadowColor = [UIColor whiteColor];
appearance.shadowImage = [UIImage imageWithColor:[UIColor whiteColor]];
self.navigationController.navigationBar.standardAppearance = appearance;
self.navigationController.navigationBar.scrollEdgeAppearance = self.navigationController.navigationBar.standardAppearance;
}
迅速:
if #available(iOS 15.0, *) {
let appearance = UINavigationBarAppearance()
appearance.configureWithOpaqueBackground()
appearance.backgroundColor = .white
appearance.shadowColor = .white
appearance.shadowImage = UIImage.color(.white)
navigationController?.navigationBar.standardAppearance = appearance
navigationController?.navigationBar.scrollEdgeAppearance = navigationController?.navigationBar.standardAppearance
}
推荐阅读
- c - 基于自动变量的绝对最坏情况堆栈大小
- javascript - 为什么即使旧状态等于新状态,使用相同值调用 useState 的 setter 随后也会触发组件更新?
- html - 在菜单和下拉菜单之间留一个空格
- javascript - 如何转义 jQuery 的 .text() 函数以执行 XSS
- typescript - Quasar / Capacitor 错误:“.../node_modules/http-proxy-middleware/dist/index 没有导出成员 'Config'”
- php - 如何避免在返回 Laravel 5.7 数据库层中的主键的结果上使用 `array_map`?
- javascript - 如何使用 if 语句检查单击元素的 querySelector 是否正确?
- php - Codeigniter 4 - 表单验证
- tinymce - TinyMCE 工具栏带有偏移量
- mysql - MySQL 引擎如何从 ClickHouse 中的 MySQL 数据库中获取数据?