FE_*_*ech 5 ios swift uiblureffect gaussianblur
我正在开发基于地图的 iOS 11 应用程序,并希望使状态栏变得完全像 Apple 地图中显示的那样模糊。
目前,我正在使用 UIVisualEffectView 来复制这种效果。这是我的代码:
let blurEffect = UIBlurEffect(style: .regular)
blurredStatusBar = UIVisualEffectView(effect: blurEffect)
blurredStatusBar?.translatesAutoresizingMaskIntoConstraints = false
view.addSubview(blurredStatusBar!)
Run Code Online (Sandbox Code Playgroud)
但是,无论我使用什么 UIBlurEffect,我都无法像 Maps 应用程序那样复制效果。以下是它如何寻找不同的效果:
我只想模糊状态栏,而不添加任何饱和度、活力或任何白色色调。
有一个实例属性 - backgroundFilters,它可能对我有帮助,但不幸的是它不适用于 iOS 上的图层。
这里建议的一种可能的解决方案是捕获图像内的 UIView 内容,然后模糊并显示它。但是,在我的情况下,这不是一个可行的解决方案,因为我在状态栏下方有一张可以平移的地图。在平移地图时将下方地图连续捕获为图像并对其进行模糊处理是没有意义的。
我尝试使用ILTranslucentView,它是 UIView 的一个小子类,提供原生 iOS 7+ 模糊(半透明)效果。它是这样出现的:
我尝试了不同的方法,如这个,但没有用。
我找到了上述问题的解决方案。我使用VisualEffectView来实现效果。它允许您自定义 VisualEffectView 的属性,例如 colortint、blurRadius、模糊比例。但是,应谨慎使用。它利用私有 UIKit API 来发挥其魔力;将此代码提交到 App Store 会增加被拒绝的风险!
| 归档时间: |
|
| 查看次数: |
1622 次 |
| 最近记录: |