4

目標: アプリでぼかしビューを作成します。

私が使用するコード:

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 と iPad で実行すると、次のようになります。 ここに画像の説明を入力

「透明度を下げる」設定を変更していないことに注意してください。

では、この黒い背景をぼかしずにスナップショットを撮りたいと思ったら、なんと!? フォト ストリームでは、正確に正しいぼかしビューの写真を見ました...

また、ホームボタンをダブルクリックしてマルチタスクインターフェースを見ると、ぼかしビュー効果が見られました!

ここに画像の説明を入力

詳細情報: iphone6s、ipad air2、iOS 9.3.1、Xcode バージョン 7.3 の両方を使用しています。

この問題を解決するのにとても疲れました。スナップショット画像を取得して画像にぼかし効果を適用するなどの他の方法を試しましたが、他のバグや他の短所があります

4

2 に答える 2

4

UIVisualEffectViewでは動作しませんSpriteKit。後ろで何が違うのかわかりません。誰かが知っている場合は、自由に回答を編集してください。私の推測では、基になる実装では、一緒に動作しないさまざまな API が使用されていると思います。シミュレーターは実際のデバイスをシミュレートするためにあらゆる種類のトリックを実行するため、実際のデバイスとは異なるものを背面で使用する可能性があり、それがシミュレーターで機能する理由です。

于 2016-04-06T08:18:57.217 に答える
0

コードでこの行を削除します

self.backgroundColor = UIColor.clearColor()
于 2016-04-06T07:13:46.583 に答える