CAGradient图层上的模糊视图为灰色

时间:2019-01-24 07:52:39

标签: swift uiblureffect

我正在添加UIVisualEffectView以使视图模糊。我的视图的背景是一个ca渐变层,当我添加模糊效果时,它只是变成灰色。

enter image description here

Greyed out blurred

这是渐变视图:

    import urllib.request
    import urllib.parse
    import re

    print("Enter the URL")
    url = input()

    #url = "https://en.wikipedia.org/wiki/Somalia"
    values = {'s':'basic', 'submit':'search'}
    data = urllib.parse.urlencode(values)
    data = data.encode('utf-8')
    req = urllib.request.Request(url,data)
    resp = urllib.request.urlopen(req)
    respData = resp.read()

    #print(respData)

    paragraphs = re.findall(r'<p>(.*?)</p>', str(respData))

    for eachP in paragraphs:
        print(eachP)

此代码在按下按钮时运行:

    let fadeView = UIVisualEffectView(effect: UIBlurEffect(style: UIBlurEffect.Style.light))

是否有帮助使其在视图的所有颜色上模糊不只是这种怪异的灰色?

2 个答案:

答案 0 :(得分:1)

我在 Xcode 10.1

中尝试了相同的代码

输出:

enter image description here

代码:

func BlurScreen() {

    let fadeView = UIVisualEffectView(effect: UIBlurEffect(style: UIBlurEffect.Style.dark))
    fadeView.frame = view.frame
    fadeView.center = view.center
    fadeView.alpha = 0.0
    fadeView.layer.zPosition = 1
    fadeView.isOpaque = true
    view.addSubview(fadeView)
    UIView.animate(
        withDuration: 1.3,
        animations: {
            fadeView.alpha = 1.0
        }
    )
}

答案 1 :(得分:0)

尝试添加您的blurredView,不要淡入淡出。 实际上,UIVisualEffectView在alpha上不能很好地工作,因此可以解释问题。 documentation中有一个有关该段的内容:

  

设置正确的Alpha值

     

使用UIVisualEffectView类时,请避免使用小于1的Alpha值。创建部分透明的视图会导致系统在屏幕外渲染过程中将视图和所有关联的子视图合并。 UIVisualEffectView对象需要作为内容的一部分进行组合,以使其看起来更正确。在视觉效果视图或其任何超级视图上将alpha设置为小于1会导致许多效果看起来不正确或根本不显示。