使用 tableviewcontroller 时导航栏上的模糊效果
Posted
技术标签:
【中文标题】使用 tableviewcontroller 时导航栏上的模糊效果【英文标题】:Blur effect on navigation bar while using a tableviewcontroller 【发布时间】:2016-09-01 16:11:41 【问题描述】:Real time blur effect for Navigation Bar
尝试了上面帖子中提到的解决方案,
AppDelegate.swift
// Sets background to a blank/empty image
UINavigationBar.appearance().setBackgroundImage(UIImage(), forBarMetrics: .Default)
// Sets shadow (line below the bar) to a blank image
UINavigationBar.appearance().shadowImage = UIImage()
// Sets the translucent background color
UINavigationBar.appearance().backgroundColor = UIColor(red: 0.0, green: 0.0, blue: 0.0, alpha: 0.0)
// Set translucent. (Default value is already true, so this can be removed if desired.)
UINavigationBar.appearance().translucent = true
RootVC.swift
func addBlurEffect()
// Add blur view
let bounds = self.navigationController?.navigationBar.bounds as CGRect!
let visualEffectView = UIVisualEffectView(effect: UIBlurEffect(style: .Light))
visualEffectView.frame = bounds
visualEffectView.autoresizingMask = [.FlexibleWidth, .FlexibleHeight]
self.navigationController?.navigationBar.addSubview(visualEffectView)
self.navigationController?.navigationBar.sendSubviewToBack(visualEffectView)
// Here you can add visual effects to any UIView control.
// Replace custom view with navigation bar in above code to add effects to custom view.
在viewDidLoad
中使用了self.addBlurEffect
。
问题,状态栏还是没有模糊,而且模糊效果仅限于RootVC.swift。
如何将其扩展到所有子 VC?
【问题讨论】:
【参考方案1】:试一试:
bounds.offsetInPlace(dx: 0.0, dy: -20.0)
bounds.size.height = bounds.height + 20.0
找到它here
【讨论】:
以上是关于使用 tableviewcontroller 时导航栏上的模糊效果的主要内容,如果未能解决你的问题,请参考以下文章
RxSwift 以及如何制作简单的 TableViewController?
tableViewController 中的 SideMenu
使用 NavigationController 将视图添加到 TableViewController
使用 tableviewcontroller 时导航栏上的模糊效果
使用 if 语句在 navigationController 中推送 tableViewController
使用 NSNotifications 从 TableViewController 导航回 UIViewController