在寻求了很多,尝试了很多解决方案后,没有解决我的问题。在我的应用程序中,我自定义了UINavigationController以获得模糊效果:
类CustomNavigationController:UINavigationController{
override func viewDidLoad() {
super.viewDidLoad()
let visualEffectView = UIVisualEffectView(effect: UIBlurEffect(style: .regular))
visualEffectView.frame = (self.navigationBar.bounds.insetBy(dx: 0, dy: -40).offsetBy(dx: 0, dy: -40))
self.navigationBar.isTranslucent = true
self.navigationBar.setBackgroundImage(UIImage(), for: .default)
self.navigationBar.addSubview(visualEffectView)
self.navigationBar.sendSubviewToBack(visualEffectView)
}
}
然后,在Main.Storyboard中,我为导航控制器项选择了自定义类。
模糊效果工作正常,状态图标正确可见,但不是标准的导航栏项:左按钮,标题和右按钮。
它们会出现片刻,但在自定义导航栏覆盖它们之后不久。
我正在使用Xcode12.4并在iPhone XR上运行该应用程序。
如何再次显示导航栏元素?
提前多谢了。
iOS中的半透明导航栏已经模糊了栏后的内容,因此您不需要添加UIVisualEffectView
,也不需要设置BackgroundImage
。
如果将代码修改为:
override func viewDidLoad()
{
super.viewDidLoad()
self.navigationBar.isTranslucent = true
}
这没有达到你所要的视觉效果吗?
如果没有,请尝试对您的方法进行以下调整:
override func viewDidLoad()
{
super.viewDidLoad()
self.navigationBar.isTranslucent = true
// create a UIImageView
let backgroundImage: UIImageView = UIImageView()
backgroundImage.autoresizingMask = [.flexibleWidth, .flexibleHeight]
// add a blur effect to the ImageView
let visualEffectView: UIVisualEffectView = UIVisualEffectView(effect: UIBlurEffect(style: .regular))
visualEffectView.frame = (self.navigationBar.bounds.insetBy(dx: 0, dy: -40).offsetBy(dx: 0, dy: -40))
backgroundImage.addSubview (visualEffectView)
// and set that as your backgroundImage on the navigationBar
self.navigationBar.setBackgroundImage(backgroundImage.image, for: .default)
}
这增加了背景图像的模糊效果。这似乎对我有用,但视觉效果与仅仅使用我的第一个建议没有什么不同,可能是因为backgroundimage.image==nil
。
这当然是一种改进的方法,因为它不会向UINavigationBar
视图层次结构中添加意外的子视图,而且我注意到这两种方法都不会影响条控件的可见性。
问题内容: 我正在尝试在导航栏的中心添加自定义视图,并且正在使用以下代码对其进行测试: 我在视图控制器的viewDidLoad方法中进行设置,但是当我运行程序时,导航栏中似乎没有任何变化。 你能帮我吗? 问题答案: 这可行。初始化时给框架
修改聊天页面导航栏背景色、导航栏上增加自定义按钮、修改导航栏上图标按钮颜色等 /** 聊天窗口导航栏 @param navigationBar 导航栏 */ - (void)ntalker_navigationBar:(UIView *)navigationBar { navigationBar.backgroundColor = [UIColor redColor];//修改导航栏背景色 }
Navbar 自定义导航栏 平台差异说明 App H5 微信小程序 支付宝小程序 百度小程序 头条小程序 QQ小程序 √ √ √ √ √ √ √ 基本使用 默认情况下,该组件只有向左的箭头,点击可以返回上一页,如果您想将自定义导航栏用在tabbar(不存在要返回的逻辑)页面,应该将is-back设置为false, 这样会隐藏左边的返回图标区域。 如果想在返回箭头的右边自定义类似"返回"字样,可以将
问题内容: 我正在尝试在导航栏中设置标题标签以允许多行。我有将多行代码放入其中的自定义导航控制器代码。我知道该代码已经可以使用,但是我的多行部分无法使用。 但是文本仍然在结尾处消失。我还尝试将其放入单个视图控制器本身,并在其前面添加相同的结果。 我的代码中缺少某些东西可以防止标题标签使用多行吗? 问题答案: 这是如何创建多行navigationBar标题的代码示例 Swift 5.x:
我正在尝试用PageView在Flutter中实现一个自定义的BottomNavigationBar,用于在同一支架中包含有状态小部件的不同页面之间滑动。 虽然我可以点击navbar并更改页面,但我无法在更改指示所选页面的icon_button的颜色的同时实现pageview滑动手势。我能够完美地使用BottomNavigationBarItem来完成此操作,但我想使用自定义设计。 包含不同Ico
我只想在我的wordpress主题菜单栏中添加一个快捷键,用于处理功能。 我尝试了在菜单中使用“