YPImagePicker弹窗导航栏透明,父视图按钮透出问题求助
问题
打开YPImagePicker表单弹窗拍摄或选择图片时,其「拍照(photo)」「相册(library)」两个标签页的导航栏及按钮均为透明状态,导致父视图的导航栏按钮透出。
父视图截图:
YPImagePicker相机视图截图:
YPImagePicker相册视图截图:
我希望YPImagePicker视图显示时,仅展示其自身导航栏的按钮,而不显示父视图的按钮。我未修改YPImagePicker的配置项,是否有可调整的设置?
解决方案
你可以通过以下几种方式调整YPImagePicker的设置来解决问题:
- 关闭导航栏半透明属性:初始化YPImagePicker时,强制关闭导航栏的半透明特性,避免父视图内容透出:
let picker = YPImagePicker() picker.navigationBar.isTranslucent = false // 可选:设置导航栏背景色,匹配你的UI风格 picker.navigationBar.backgroundColor = .white
- 通过YPConfiguration配置导航栏样式:利用YPImagePicker自带的配置类,直接定义导航栏的背景色,确保导航栏不透明:
var config = YPConfiguration() config.colors.navigationBarBackground = .white config.colors.navigationBarTitle = .black // 可选:设置标题文字颜色 let picker = YPImagePicker(configuration: config)
- 临时隐藏父视图导航栏:在弹出YPImagePicker前隐藏父视图的导航栏,完成选择后再恢复,彻底避免父视图导航栏干扰:
// 弹出picker前隐藏父导航栏 self.navigationController?.navigationBar.isHidden = true // 初始化并弹出picker let picker = YPImagePicker() present(picker, animated: true) // 在picker的回调中恢复父导航栏 picker.didFinishPicking { [weak self] items, _ in self?.navigationController?.navigationBar.isHidden = false // 处理选中的图片逻辑 }
此外,检查是否有全局的UINavigationBar样式设置(比如AppDelegate或SceneDelegate中的全局配置),这类设置可能会影响YPImagePicker的导航栏表现,确保没有强制设置所有导航栏为半透明。
内容的提问来源于stack exchange,提问作者Vader20FF
相关产品推荐
相关产品推荐

