swift 我想模糊整个屏幕,除了一个堆栈视图

vxf3dgd4  于 2023-11-16  发布在  Swift
关注(0)|答案(1)|浏览(119)

当我的键盘显示时,堆栈视图中的文本输入会增加。现在我想在这个堆栈视图后面添加一个模糊视图。
App已启动:


的数据
我试探着:

let blurEffect = UIBlurEffect(style: .prominent)
blurEffectView = UIVisualEffectView(effect: blurEffect)
blurEffectView.frame = view.bounds 
view.addSubview(blurEffectView)

字符串
现在已经点击了文本输入:



我的文字输入模糊了


9jyewag0

9jyewag01#

你现在的代码是在视图控制器的视图层次结构中添加一个UIVisualEffectView。如果你想模糊除了文本视图之外的所有内容,你需要重新组织你的视图层次结构,这样你的文本视图就是你想模糊的视图的顶级子视图。
然后,通过在文本视图的父视图上调用insertSubview(_:belowSubview siblingSubview:),并将文本视图作为siblingSubview传递,将UIVisualEffectView添加到文本视图下。
这样,UIVisualEffectView将覆盖文本视图的父视图的所有其他子视图,但保留文本视图。
但是,现在,您的文本视图包含在两个不同的堆栈视图中,因此您没有一个父视图来包含您想要隐藏的所有其他内容。
如果您想模糊包含文本字段的整个堆栈视图,请在文本输入堆栈视图的父视图上调用insertSubview(_:belowSubview siblingSubview:),并将文本输入堆栈视图作为siblingSubview传递。

相关问题