【问题标题】:swift UIVisualEffectView with mask autolayout varies by iOS device带有掩码自动布局的 swift UIVisualEffectView 因 iOS 设备而异
【发布时间】: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
//    }

}

Storyboard and Code capture

Results depending on iOS versions

--- 我尝试将mask 代码从viewDidLoad() 方法移动到viewDidLayoutSubviews(),但它仍然相同。

【问题讨论】:

  • 我认为你的意思是它因设备而异,因为所有这些模拟器都运行 iOS 14.4。解决方案是在 viewDidLayoutSubviews 而不是 viewDidLoad 上应用掩码。
  • @EmilioPelaez 谢谢你的评论。就像您提到的那样,我将“版本”一词更改为“设备”。无论如何,我将mask 代码从viewDidLoad 移动到viewDidLayoutSubview,但它仍然相同。 :(..

标签: ios swift uiview mask uivisualeffectview


【解决方案1】:

通过以下代码自行解决。 从类似问题收到提示:'https://stackoverflow.com/questions/58998541/swift-mask-uiview-constraints-issues/59037761'

override func viewDidAppear() {
    self.setupBlur()
}

【讨论】:

    猜你喜欢
    • 2015-05-03
    • 1970-01-01
    • 2015-06-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-13
    相关资源
    最近更新 更多