[英]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")
}
}
結果:在模擬器上一切正常:
請注意我沒有改變“減少透明度”設置!
然后,當我想拍攝這個黑色背景的快照而不模糊時,猜猜是什么?! 在照片流中,我看到了正確的模糊視圖圖片......
另外,當我雙擊主頁按鈕,並查看多任務界面時,我看到了模糊視圖效果!
更多信息:我使用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.