我正在添加UIVisualEffectView以使视图模糊。我的视图的背景是一个ca渐变层,当我添加模糊效果时,它只是变成灰色。
这是渐变视图:
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))
是否有帮助使其在视图的所有颜色上模糊不只是这种怪异的灰色?
答案 0 :(得分:1)
我在 Xcode 10.1
中尝试了相同的代码输出:
代码:
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会导致许多效果看起来不正确或根本不显示。