如何在 iPhone 受限访问库选择器中将导航按钮颜色设置为黑色?

问题描述 投票:0回答:1

屏幕截图选择器视图

当 PHPickerViewController 中的导航按钮显示为 iOS 上的照片库访问权限有限时,我在自定义导航按钮颜色时遇到了问题。导航栏按钮(“取消”和“完成”)在白色背景上以白色显示,这使得它们不可见。我希望它们显示为黑色以获得更好的可见性。

我尝试过的:

  1. 在 AppDelegate 中设置全局 UINavigationBar 外观:
UINavigationBar.appearance().tintColor = UIColor.black
let appearance = UINavigationBarAppearance()
appearance.configureWithOpaqueBackground()
appearance.backgroundColor = .white
appearance.titleTextAttributes = [.foregroundColor: UIColor.black]
appearance.buttonAppearance.normal.titleTextAttributes = [.foregroundColor: UIColor.black]
appearance.shadowColor = .clear
UINavigationBar.appearance().standardAppearance = appearance
UINavigationBar.appearance().scrollEdgeAppearance = appearance
  1. 直接自定义PHPickerViewController:
@objc func openPHPicker() {
    if #available(iOS 14.0, *) {
        var configuration = PHPickerConfiguration()
        configuration.selectionLimit = 4
        configuration.filter = .images

        let picker = PHPickerViewController(configuration: configuration)
        picker.navigationController?.navigationBar.tintColor = .black
        picker.navigationController?.navigationBar.titleTextAttributes = [.foregroundColor: UIColor.black]
        picker.delegate = self
        self.present(picker, animated: true, completion: nil)
    }
}

尽管尝试了这两种方法,按钮在受限访问库视图中仍然显示为白色。我注意到其他应用程序(例如 Instagram)设法以黑色显示这些按钮,所以我认为必须有一种方法来强制执行这种样式,但我不知道如何实现。

ios swift uikit phpickerviewcontroller
1个回答
0
投票

我不知道这是否是一个有效的方法,你可以尝试更改

tintColor
PHPickerViewController

picker.view.tintColor = .black
© www.soinside.com 2019 - 2024. All rights reserved.