【发布时间】:2021-07-12 17:41:20
【问题描述】:
我正在使用带有 mask 选项的 swift UIVisualEffectView。
我正在尝试制作一个被UIImageView 掩盖的模糊UIVisualEffectView。
我已经为情节提要上的视图设置了自动布局约束,但结果因 iOS 设备而异。
故事板、代码和结果附在下面。
如果有人帮助我,我会很高兴。
我已经在情节提要上设置了所有自动布局约束。(捕获包括在下面)
代码非常简单。我只设置了blurView.mask = topImageView。
class TestViewController: UIViewController {
@IBOutlet weak var bottomImageView: UIImageView!
@IBOutlet weak var topImageView: UIImageView!
@IBOutlet weak var blurView: UIVisualEffectView!
override func viewDidLoad() {
super.viewDidLoad()
blurView.mask = topImageView
}
// Still same issue when I move the mask to 'viewDidLayoutSubviews()' method
//
// override func viewDidLayoutSubviews() {
// super.viewDidLoad()
// blurView.mask = topImageView
// }
}
Results depending on iOS versions
---
我尝试将mask 代码从viewDidLoad() 方法移动到viewDidLayoutSubviews(),但它仍然相同。
【问题讨论】:
-
我认为你的意思是它因设备而异,因为所有这些模拟器都运行 iOS 14.4。解决方案是在
viewDidLayoutSubviews而不是viewDidLoad上应用掩码。 -
@EmilioPelaez 谢谢你的评论。就像您提到的那样,我将“版本”一词更改为“设备”。无论如何,我将
mask代码从viewDidLoad移动到viewDidLayoutSubview,但它仍然相同。 :(..
标签: ios swift uiview mask uivisualeffectview