0

在 iOS 13 中,自定义导航栏外观方面似乎发生了一些变化。我想自定义一个UIImagePickerController. 根据 iOS 13 指南,更改现有导航栏的代码(在这种情况下将UIImagePickerController导航栏背景颜色更改为红色)将是:

let imagePickerViewController = UIImagePickerController()
let barAppearance = UINavigationBarAppearance()
barAppearance.configureWithDefaultBackground()
barAppearance.backgroundColor = .red
imagePickerViewController.navigationBar.standardAppearance = barAppearance
imagePickerViewController.navigationBar.scrollEdgeAppearance = barAppearance

不幸的是,这不起作用。一般设置imagePickerViewController.navigationBar外观对呈现没有任何影响UIImagePickerController

唯一似乎有效的方法是改变所有的默认外观,UINavigationBars如下所示:

UINavigationBar.appearance().tintColor = .red

但这不允许单独定制,也不允许使用您自己的UIBarButtonItems和其他导航栏元素扩展导航栏。

我知道 StackOverflow 上有一些关于这个主题的问题,但没有一个有有效的答案,也没有一个讨论苹果是否在UIImagePickerController. 所以这是我的问题:

  • 苹果UIImagePickerController在 iOS 13 中是否取消了自定义导航栏的选项?
  • 如果没有,您如何真正自定义UIImagePickerControlleriOS 13 中的导航栏?
4

1 回答 1

0

我也试过了,但只能UINavigationBar.appearance().tintColor = .red像你说的那样工作。

一部分UIImagePickerController在单独的进程(_UIRemoteView)上运行,可能是为什么?

于 2020-06-10T08:33:13.007 回答