Ios UIVisualEffectView的渐变遮罩
我知道Ios UIVisualEffectView的渐变遮罩,ios,swift,gradient,blur,uivisualeffectview,Ios,Swift,Gradient,Blur,Uivisualeffectview,我知道UIVisualEffectView非常不可量化,因此我无法设置视图的模糊半径,甚至无法设置颜色 现在我意识到我甚至不能掩盖一个 我想实现一个背景模糊的标签栏,但在上角它会变得更清晰,直到100%。 因为我知道我无法调整模糊半径,所以我有了一个想法,使用渐变遮罩来拱起这样的东西: 但是,一开始我很伤心,我甚至无法掩盖一个简单的矩形: let gradientMask = CAGradientLayer() gradientMask.frame = effectView.frame
UIVisualEffectView
非常不可量化,因此我无法设置视图的模糊半径,甚至无法设置颜色
现在我意识到我甚至不能掩盖一个
我想实现一个背景模糊的标签栏,但在上角它会变得更清晰,直到100%。
因为我知道我无法调整模糊半径,所以我有了一个想法,使用渐变遮罩来拱起这样的东西:
但是,一开始我很伤心,我甚至无法掩盖一个简单的矩形:
let gradientMask = CAGradientLayer()
gradientMask.frame = effectView.frame
gradientMask.colors = [UIColor.black.cgColor, UIColor.clear.cgColor]
effectView.layer.mask = gradientMask
结果是,UIVisualEffectView
不再显示。
你有什么解决办法吗
编辑:屏幕截图中的视图就是一个例子,在最终的应用程序中,背景是一个动态列表,带有平铺,我可以在其中滚动浏览。因此,快照的解决方法在我的情况下不起作用。我想这可以通过使用
UIVisualEffectView
效果制作背景UIView
的运行时快照,并使用生成的快照图像在覆盖UIImageView
中显示,然后将遮罩应用于该效果UIImageView
同时隐藏UIVisualEffectView
。不漂亮,但可以工作。编辑:除此之外,可能是相关的。好主意,但在我的情况下不起作用。我忘了说,我的背景是动态的。在最终视图中,我将有一个列表,可以在其中滚动。尝试使用渐变层,而不是形状层。查看或尝试此回购-@Kirow尝试了这两种方法,两种方法都有相同的结果。模糊的视图不再显示。已使用blurView.mask=。。。和blurView.layer.mask=。。。对于遮罩,我使用了一个简单的矩形层,一个CAGradientLayer和一个UIView。我想这可以通过使用UIVisualEffectView
效果制作背景UIView
的运行时快照,并使用生成的快照图像显示在叠加UIImageView
中,并对该UIImageView
应用掩码,同时隐藏UIVisualEffectView
。不漂亮,但可以工作。编辑:除此之外,可能是相关的。好主意,但在我的情况下不起作用。我忘了说,我的背景是动态的。在最终视图中,我将有一个列表,可以在其中滚动。尝试使用渐变层,而不是形状层。查看或尝试此回购-@Kirow尝试了这两种方法,两种方法都有相同的结果。模糊的视图不再显示。已使用blurView.mask=。。。和blurView.layer.mask=。。。对于遮罩,我使用了一个简单的Rect层、一个CAGradientLayer和一个UIView。