Ios 如何获得类似苹果地图状态栏的模糊效果?

Ios 如何获得类似苹果地图状态栏的模糊效果?,ios,swift,uiblureffect,gaussianblur,Ios,Swift,Uiblureffect,Gaussianblur,我正在开发一款基于地图的iOS 11应用程序,希望使状态栏变得模糊,就像苹果地图中显示的那样 这是它在“地图”应用程序上的外观: 目前,我正在使用UIVisualEffectView复制这种效果。这是我的密码: let blurEffect = UIBlurEffect(style: .regular) blurredStatusBar = UIVisualEffectView(effect: blurEffect) blurredStatusBar?.translatesAutoresizi

我正在开发一款基于地图的iOS 11应用程序,希望使状态栏变得模糊,就像苹果地图中显示的那样

这是它在“地图”应用程序上的外观:

目前,我正在使用UIVisualEffectView复制这种效果。这是我的密码:

let blurEffect = UIBlurEffect(style: .regular)
blurredStatusBar = UIVisualEffectView(effect: blurEffect)
blurredStatusBar?.translatesAutoresizingMaskIntoConstraints = false
view.addSubview(blurredStatusBar!)
然而,无论我使用什么效果,我都无法像“地图”应用程序那样复制这种效果。以下是不同效果的外观:

.regular

。突出的

.light

.extraLight

我只想模糊状态栏,不添加任何饱和度、活力或任何白色色调。

有一个实例属性-,可能对我有所帮助,但不幸的是,它不适用于iOS上的层

一个可能的解决方案是捕获图像中的UIView内容,然后模糊并显示它。然而,在我的例子中,这不是一个可行的解决方案,因为我在状态栏下面有一个可以平移的地图。在平移贴图时,连续捕获下方贴图作为图像并使其模糊是没有意义的

我尝试了使用,它是UIView的一个小类,提供原生iOS 7+模糊(半透明)效果。 它是这样出现的:


我尝试了几种不同的方法,如,但没有用。

您可以尝试以下方法

yourView.backgroundColor = UIColor.clear
let blurEffect = UIBlurEffect(style: UIBlurEffectStyle.light)   // Or   UIBlurEffectStyle.dark    
let blurEffectView = UIVisualEffectView(effect: blurEffect)
blurEffectView.frame = viewAdvancefilter.blurredView.bounds
blurEffectView.autoresizingMask = [.flexibleWidth, .flexibleHeight]
yourView.addSubview(blurEffectView)

我找到了解决上述问题的办法。我曾经达到过这样的效果。它允许您自定义VisualEffectView的颜色、模糊半径、模糊比例等属性。但是,应谨慎使用。它利用一个私有的uikitapi来实现它的魔力;将此代码提交到应用商店会增加被拒绝的风险

您可以尝试使用
UIToolbar


它具有与
UINavigationBar
UITabBar
相同的模糊效果,这是用
uifrulfeffect
无法实现的。嗨,我认为苹果没有使用uifrulfeffect,为了达到这种效果,试着像状态栏视图一样添加。我已经说过,使用uifrulfeffect和UIVisualEffectView没有帮助。我还发布了屏幕截图,显示了这些效果与apple maps应用程序中的模糊效果有何不同。我建议你把问题再读一遍。