2014-10-16 60 views
12

我的應用程序利用UIVisualEffectView模糊背景,就像Control Center一樣。但是我發現可以運行iOS 8的iPad 2(和Retina iPad)功能不足以顯示該效果,因此它恢復爲灰色。我希望能夠檢測到應用程序運行的設備是否足夠強大以顯示模糊效果,如果不是,我不會應用它,而是將背景顏色更改爲看起來好得多的東西那灰色的顏色。但我不想僅僅檢查設備是iPad 2還是iPad 3第四代(它是否影響第4代呢?)。有沒有更好的方法來檢測UIBlurEffect是否會按預期顯示?檢測設備是否正確顯示UIVisualEffectView?

+1

這樣的運氣呢?這裏同樣的問題。 – soleil 2014-11-04 06:58:17

回答

8

入住此WWDC會議:http://asciiwwdc.com/2014/sessions/419

所以,並重申在什麼設備,我們不模糊的,我們只能做對iPad 2和iPad 3代着色,我們只是運用色彩我們跳過模糊步驟。

[...]

在iPad上的第4代,iPad的空氣,iPad的迷你,iPad的迷你配備Retina顯示屏,iPhone和iPod touch的我們都做了模糊和着色。

我想你不得不求助於檢查機器名稱:

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

struct utsname systemInfo; 
uname(&systemInfo); 

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

這個例子不完整。我還想看看如何將色調設置爲非灰色的示例。 – bluefloyd8 2014-11-30 18:01:12

2

蘋果內部使用[UIDevice _graphicsQuality]這些類型的檢查。在下面的帖子中,我提出了一種只使用公共API的方法:https://stackoverflow.com/a/27879304/1914276

+0

FWIW,有不支持UIVisualEffectView的硬件設備不在該類別中列出: iPhone4,1,iPhone5,1 – troppoli 2016-08-23 18:32:44