2014-10-16 14 views
12

Uygulamam, Kontrol Merkezi gibi arka planı bulanıklaştırmak için UIVisualEffectView kullanmaktadır. Ancak iOS 8'i çalıştıran iPad 2'nin (ve Retina iPad'in) bu etkiyi gösterecek kadar güçlü olmadığını keşfettim, böylece gri bir renge dönüştü. Uygulamanın çalıştığı cihazın bulanık efekti gösterecek kadar güçlü olup olmadığını algılayabilmeyi isterim ve eğer uygulama yapmazsam, arka plan rengini değiştirmekten çok daha iyi bir görünüme dönüştürürüm. o gri renk. Ancak, cihazın iPad 2 veya iPad 3. nesil olup olmadığını kontrol etmek istemiyorum (4'ü de etkiler mi?). UIBlurEffect'un beklendiği gibi görünüp görünmeyeceğini saptamanın daha iyi bir yolu var mı?Aygıtın UIVisualEffectView öğesini düzgün görüntüleyip görüntülemediğini algıla?

+1

Bu konuda herhangi bir şans var mı? Burada da aynı problem. – soleil

cevap

8

Kontrol Bu WWDC oturum: http://asciiwwdc.com/2014/sessions/419

Yani, biz bulanıklaştırmayız hangi cihazları üzerinde tekrar vurgulamak ve sadece iPad 2 ve iPad 3. nesil üzerinde gölgelendirme yapmak, biz sadece ton uygular ve bulanıklık adımlarını atlıyoruz.

[...] iPad 4 nesil üzerinde

, iPad Air, iPad Mini, retina ekran, iPhone ve biz bulanıklığı ve gölgelendirme hem do iPod touch ile iPad Mini.

Sana makine adına kontrol başvurmak zorunda tahmin:

#import <sys/utsname.h> 
... 

struct utsname systemInfo; 
uname(&systemInfo); 

NSString *deviceName = [NSString stringWithCString:systemInfo.machine encoding:NSUTF8StringEncoding]; 
... 
+0

Bu örnek eksik. Renk tonunun gri olmayan olarak nasıl ayarlanacağına dair bir örnek görmek isterim. – bluefloyd8

2

Elma içten çeklerin bu tür [UIDevice _graphicsQuality] kullanır. Aşağıdaki yazıda, yalnızca genel API kullanılarak aynı işlemi yapan bir yöntem önermekteyim: https://stackoverflow.com/a/27879304/1914276

+0

FWIW, bu kategoride listelenmeyen UIVisualEffectView'ı desteklemeyen donanım aygıtları var: iPhone4,1, iPhone5,1 – troppoli