【问题标题】:Updating Nav Bar background when displaying UIImagePickerController显示 UIImagePickerController 时更新导航栏背景
【发布时间】:2020-03-12 13:58:07
【问题描述】:

在我的AppDelegate 中,我将导航栏配置如下:

func setupNavBar() {
    let barAppearance = UINavigationBar.appearance()
    barAppearance.titleTextAttributes = [NSAttributedString.Key.foregroundColor: appRed]
    barAppearance.setBackgroundImage(UIImage(), for: UIBarMetrics.default)
    barAppearance.shadowImage = UIImage()
    barAppearance.isTranslucent = true
}

这很好用——直到我想从我的UIViewControllers 中显示一个UIImagePickerController——图像超出了栏,因为它是半透明的——我需要能够暂时将导航栏设置为白色,然后制作当拾取器控制器被拆除时,它再次透亮:

我尝试通过在代码中添加最后两行来解决此问题:

 let pickerController = UIImagePickerController()
    pickerController.delegate = self
    pickerController.allowsEditing = false
    pickerController.mediaTypes = ["public.image"]
    pickerController.sourceType = .savedPhotosAlbum
    self.navigationController?.navigationBar.backgroundColor = .white
    self.navigationController?.navigationBar.isTranslucent = false
    self.present(pickerController, animated: true, completion: nil)

这似乎不起作用。

【问题讨论】:

    标签: ios swift uinavigationcontroller uinavigationbar uiimagepickercontroller


    【解决方案1】:

    试试这个:

    let pickerController = UIImagePickerController()
    pickerController.delegate = self
    pickerController.allowsEditing = false
    pickerController.mediaTypes = ["public.image"]
    pickerController.sourceType = .savedPhotosAlbum
    UINavigationBar.appearance().isTranslucent = false
    self.present(pickerController, animated: true, completion: nil)
    

    然后在图像选择器上关闭

    UINavigationBar.appearance().isTranslucent = true
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多