簡體   English   中英

使用UIVisualEffectView創建模糊視圖,在模擬器上更正,但在iphone和ipad上沒有

[英]use UIVisualEffectView to create a blur view, correct on simulator but not on iphone & ipad

目標:在應用中創建模糊視圖。

我使用的代碼:

func createBlurBackgroundView() 
{
    if !UIAccessibilityIsReduceTransparencyEnabled() 
    {
        if blurredSubView == nil || blurredSubView.superview == nil 
        {
            print("Create blurred background view")
            self.backgroundColor = UIColor.clearColor()
            let blurEffect = UIBlurEffect(style: UIBlurEffectStyle.Light)
            blurredSubView = UIVisualEffectView(effect: blurEffect)
            blurredSubView.frame = self.bounds
            self.insertSubview(blurredSubView, atIndex: 0)
        }
    }
    else 
    {
        print("Transparency disabled!! no blur view")
    }
}

結果:在模擬器上一切正常:

在此輸入圖像描述

但是當我在iphone和ipads上運行它時,它看起來像: 在此輸入圖像描述

請注意我沒有改變“減少透明度”設置!

然后,當我想拍攝這個黑色背景的快照而不模糊時,猜猜是什么?! 在照片流中,我看到了正確的模糊視圖圖片......

另外,當我雙擊主頁按鈕,並查看多任務界面時,我看到了模糊視圖效果!

在此輸入圖像描述

更多信息:我使用iphone6s,ipad air2,iOS 9.3.1 Xcode 7.3版

我試圖解決這個問題太累了,我嘗試了其他方法,比如拍攝快照圖像然后對圖像應用模糊效果,但還有其他錯誤和其他CONs

UIVisualEffectView不適用於SpriteKit 我不知道他們在后面做了什么不同,如果有人知道,請隨時編輯答案。 我的猜測是底層實現使用了不起作用的不同API。 模擬器會使用各種技巧來模擬實際設備,因此他們可能會使用不同於實際設備的東西,這就是它在模擬器上運行的原因。

在代碼中刪除此行

self.backgroundColor = UIColor.clearColor()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM