2016-04-06 7 views
4

Amaç: uygulamada bir bulanıklık görünümü oluşturun.UIVisualEffectView'i kullanarak bir bulanıklık görüntüsü oluşturmak, simülatörde düzeltmek ancak iphone ve ipad üzerinde değil

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") 
    } 
} 

sonuç: herşey simülatörü üzerinde çalışıyor:

kodu kullandığım

enter image description here

Ama iphone ve iPad'lerde koştum zaman, benziyor : enter image description here

LÜTFEN DİKKAT EDİLMEYEN ŞEFFAFLIK "AYARLAR!

Bu siyah arkaplanın bulanıklığını bulanıklaştırmak istediğimde ne olduğunu tahmin et ?! fotoğraf akışında, tam olarak doğru bulanıklık görüntüsünü gördüm ...

Ayrıca, ana düğmeyi çift tıklattığımda ve çoklu görev arabirimine baktığımda, bulanık görüntü efektini gördüm!

enter image description here

Fazla Bilgi: Ben bu sorunu çözmeye çalışırken daha çok yoruldum iphone6s, ipad Air2, hem iOS 9.3.1 Xcode sürüm 7.3

kullanmak, ben gibi diğer yöntemler denedi anlık görüntü almak sonra görüntü üzerinde bulanıklık efekti uygulamak, ancak diğer böcek ve diğer eksilerini

sahiptir
+0

UIAccessibilityIsReduceTransparencyEnabled() 'ifadesinin ne yaptığını kontrol ettiniz mi? – Jelly

+0

@jelly evet, lütfen kodumu kontrol edin, baskı bilgisi var ve ben de ayarları kontrol ettim –

+0

'createBlurBackgroundView()' diye adlandırıyorsunuz? – Jelly

cevap

4

UIVisualEffectView yapar çıkar SpriteKit ile çalışmaz. Arkasında farklı olarak ne yaptığını bilmiyorum, eğer birisi biliyorsa cevabı düzenlemek için çekinmeyin. Benim tahminim, temeldeki uygulama, togheter çalışmayan farklı API'ler kullanmasıdır. Simülatör, gerçek cihazı simüle etmek için her türlü hile yapar, böylece gerçek cihazlardan farklı bir şey kullanabilirler ve bu yüzden bir simülatörde çalışır.

0

self.backgroundColor = UIColor.clearColor().

İlgili konular