首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在显示UIImagePickerController时更新导航栏背景

在显示UIImagePickerController时更新导航栏背景
EN

Stack Overflow用户
提问于 2019-11-17 01:49:04
回答 1查看 53关注 0票数 1

在我的AppDelegate中,我按如下方式配置导航栏:

代码语言:javascript
运行
复制
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 -图像超出了条形图,因为它是半透明的-我需要能够暂时使导航栏变为白色,然后在取消拾取器控制器时再次使其半透明:

我尝试通过将最后两行添加到代码中来修复此问题:

代码语言:javascript
运行
复制
 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)

不过,这似乎不起作用。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-11-17 02:53:08

试试这个:

代码语言:javascript
运行
复制
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)

在图像拾取器关闭时

代码语言:javascript
运行
复制
UINavigationBar.appearance().isTranslucent = true
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58893545

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档